Select über 2 Tabellen
-
Hallo.
Ich habe 2 Tabellen:
tbl_words: id | word 1 | gehen 2 | go
und
tbl_rel: one | two 2 | 1 (kann aber auch so sein:) 1 | 2
Über die Tabelle tbl_rel verbinde ich nun 2 Datensätze aus tbl_words.
Nun möchte ich, wenn 'go' das gesuchte Wort ist, gucken welche ID dieses Wort hat, gucken mit welchem es verknüpft ist (können auch mehrere sein) und diese
Zeile aus tbl_words dann ausgeben. In dem Fall wäre es 1, gehen.Wie kann ich mit den query bastelt?
Mein Ansatz:SELECT * FROM tbl_words WHERE id LIKE (SELECT one, two WHERE one LIKE (SELECT id FROM tbl_words WHERE word LIKE 'gehen') OR two LIKE (SELECT id FROM tbl_words WHERE word LIKE 'gehen'))
Aber irgendwie haut das nicht hin.
Wäre über jede Hilfe dankbar.
-
Ach, ein kleiner Fehler:
SELECT * FROM tbl_words WHERE id LIKE (SELECT one, two FROM tbl_rel WHERE one LIKE (SELECT id FROM tbl_words WHERE word LIKE 'gehen') OR two LIKE (SELECT id FROM tbl_words WHERE word LIKE 'gehen'))
-
Ich hab den query mal anders aufgebaut:
Ein Datensatz bekomm ich aber immernoch nicht zurückgeliefert.SELECT * FROM tbl_words WHERE id LIKE
(SELECT one FROM tbl_rel WHERE
one LIKE (SELECT id FROM tbl_words WHERE word LIKE 'gehen'))
OR id LIKE
(SELECT two FROM tbl_rel WHERE
one LIKE (SELECT id FROM tbl_words WHERE word LIKE 'gehen'))
-
wie wärs mit einem einfachen join?
select word from tbl_words, tbl_rel where tbl_words.id = tbl_rel.two and tbl_rel.one = <id>
und <id> ist dann die id des wortes "gehen" aus tbl_words
subqueries braucht man eigentlich nur wenn man wirklich etwas komplett anderes machen will. hier willst du einfach nur joinen...
-
Shade_Of_Mine++;
Danke!