SQL Select aus mehreren Tabellen zusammenfassen

diamin

Newbie
Registriert
Nov. 2012
Beiträge
3
Hallo zusammen,

ich versuche derzeit, eine MySQL Select-Abfrage zu bauen, die mir aus unterschiedlichen Tabellen jeweils zeilenweisen Daten liefern, die unterschiedlich lang sein können:

Tabelle 1
ID Data
01 Maus
02 Katze
03 Elefant
04 Vogel

Tabelle 2
ID Attribut
01 Fell
02 Fell
03 Rüssel
01 klein
03 groß
04 schwer

Das Ergebnis sollte so aussehen:
ID Data --- Attribut(e)
01 Maus: Fell - klein
02 Katze: Fell
03 Elefant: Rüssel - groß - schwer
04 Vogel: (keine Einträge)

Nach vielen Experimenten habe ich nun einen Knoten im Gehirn, bin aber noch nicht weiter gekommen als zu einem Ergebnis, dass mir Daten der Form ID-Data-(einzelnes Attribut) liefert.

Hat jemand von euch eine Idee oder einen Ansatz?

Viele Grüße!
 
Du brauchst irgendwo einen Fremdschlüssel oder eine weitere Tabelle, die das Tier mit Eigenschaften verknüpft.
 
Wieso du paar mal die Gleiche Merkmalnummer hast, habe ich nicht kapiert.

Hier mal mein erster Vorschlag (SQL habe ich nicht testen können):

Tier (T1)
ID|Data
1|Maus
2|Katze
3|Elefant
4|Vogel

Merkmal (T2)
ID|Attribut
1|Fell
2|Rüssel
3|klein
4|gross
5|schwer

Tiermerkmal (T3)
T1ID|T2ID
1|1
1|3
2|1
3|2
3|4
3|5


SQL für alle Merkmale der Maus herauszufinden:

Code:
Select t1.data, t2.attribut
From tiermerkmal t3
Join tier t1 on t1.id = t3.t1id
Join merkmal t2 on t2.id = t3.t2id 
Where t1.id = 1 /* Maus */
 
Hmmm...allein schon die Tabellenstruktur kann man verbessern. Dann wäre vielleicht die Abfrage einfacher umzusetzen.
 
Zurück
Oben