Wenn Du meine beiden Tabellen als Basis nimmst, könntest Du eine dritte Tabelle erstellen:
Tabelle t_krank
Code: Alles auswählen
krankheiten_id |symptome_id
----------------------------
1 | 2
1 | 3
1 | 4
2 | 1
2 | 5
Demzufolge kann man sehr schön einen SELECT * FROM t_krank WHERE symptome_id = 1 absetzen, um alle Symptome der Krankheit 1 zu bekommen. Dann musst Du mit Joins arbeiten, denn die IDs 2,3,4 sind nichts-aussagend. Der JOIN könnte dann so aussehen:
Code: Alles auswählen
Zeile 1. SELECT t_krank.*, symptome.symptom
Zeile 2. FROM t_krank
Zeile 3. INNER JOIN (symptome)
Zeile 4. ON (t_krank.symptome_id = symptome.id)
Zeile 5. WHERE krankheiten_id = 1
Im Prinzip holst du den Wert aus der Tabelle Symptome, der zur symptome_id passt:
Zeile 1: Normaler SELECT. Wichtig: man muss die Tabelle explizit angeben, woher die Werte kommen.
Zeile 2: Angabe der Ausgangstabelle, auf die unser Query zielt
Zeile 3: JOIN auf die zweite Tabelle symptome
Zeile 4: "gib mir die Werte aus der zweiten Tabelle, wo t_krank.symptome_id und symptome.id übereinstimmen"