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!


Log in to reply