Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MySQL: Problem mit Query

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich schlag mich nun schon ein paar Stunden mit folgendem Problem herum und frage mich ob es nicht noch die fähigen Experten gibt die mir während meiner Ausbildung schon geholfen haben. ;)

Ich habe eine Tabelle mit den Beziehungen

a | b

---------

1 | 3

2 | 5

3 | 4

1 | 4

8 | 3

3 | 9

Und suche aus dieser Tabelle alles was mit der 3 verknüpft ist. Also das Resultat muß wie folgt aussehen.

geg | ges

---------

3 | 1

3 | 4

3 | 8

3 | 9

Eine einfache ODER Verknüpfung zwischen a und b mit der Bedingung das der Wert 3 sein soll bringt mir leider nicht das geordnete ergebniss sondern immernoch sowohl in der rechten, als auch in der linken spalte den Wert den ich suche.

Ist es hier irgendwie möglich die Tabelle mit sich selbst zu Joinen und dabei die spaltenbezeichnungen zu vertauschen?

Ich danke euch! :)

SELECT *

FROM Tabelle

WHERE a = 3 ?

ORDER BY 1

davor schon Stunden ?

Das funktioniert leider nur bedingt weil damit nur die A->B verknüpfungen abgefragt werden.

Was dann z.B. im Resultat fehlen würde wäre die Verbindung zwischen

8 und 3

1 und 3 weil in dem Fall die 3 ja in der spalte B vorkommt. ;)

Ich muß da nochwas ergänzen, eigentlich ist es irrelevant ob in der Ergebnisstabelle die geg - spalte vorkommt. Ich benötige nur die jeweils verknüpften ID's

Hi,

du könntest zwei Abfragen machen und mit einem UNION verbinden:

SELECT a geg, b ges from Tabelle WHERE a=3

UNION

SELECT b geg, a ges from Tabelle WHERE b=3

Gruß

Hi,

denke mal, das wird dir weiterhelfen, wenn du nur die IDs brauchst die verknüpft sind:


SELECT b FROM tabelle WHERE a=3

UNION

SELECT a FROM tabelle WHERE b=3

Gruß,

Dirk

Also das Resultat muß wie folgt aussehen.


SELECT 3, ges from

(

SELECT CASE a WHEN 3 THEN b ELSE 

CASE b WHEN 3 THEN a ELSE 0 END END ges FROM test2 

order by id

) t2

WHERE ges > 0

Meine Tabelle test 2 sieht folgendermaßen aus:

id

a

b

(Weil MySQL eine Spalte als Primary key haben wollte)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.