Net-srac Geschrieben 12. Januar 2007 Geschrieben 12. Januar 2007 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!
baba007 Geschrieben 13. Januar 2007 Geschrieben 13. Januar 2007 SELECT * FROM Tabelle WHERE a = 3 ? ORDER BY 1 davor schon Stunden ?
Net-srac Geschrieben 13. Januar 2007 Autor Geschrieben 13. Januar 2007 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
SpaceN8 Geschrieben 13. Januar 2007 Geschrieben 13. Januar 2007 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ß
DiHo Geschrieben 13. Januar 2007 Geschrieben 13. Januar 2007 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
geloescht_JesterDay Geschrieben 19. Januar 2007 Geschrieben 19. Januar 2007 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)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden