Tabellen verbinden
Heizer
- datenbank
Liebes Forum
Ich bin noch relativ neu im datenbank-Bereich, und habe folgendes Problem:
Eine tabelle enthält alle einträge, eine Zweite die Gruppen, in die die Einträge eingeteilt sind (ähnlich dem "Themenbereich" in diesem Forum). In der Ersten Tabelle steht bei der Gruppenzugehörigkeit nur eine Zahl, die auf die ID in der zweiten Tabelle verweist. Nun würde ich die Datenbankanfrage gerne so stellen, daß statt der Zahl direkt der Name der Gruppe ausgegeben wird. Ich bin mir sicher, daß das geht, aber ich komme nicht darauf und bin offenbar auch zu blöd, um die MySQL Docu zu verstehen ...
Vielen dank
Heizer
Hallo Heizer,
JOIN ist dein Freund:
"select tabelle1.eintrag, tabelle2.gruppename from tabelle1 join
tabelle2 where tabelle1.gruppenid=tabelle2.id"
Viele Grüße
Stephan
ReHi
JOIN ist dein Freund:
"select tabelle1.eintrag, tabelle2.gruppename from tabelle1 join
tabelle2 where tabelle1.gruppenid=tabelle2.id"
Super, vielen Dank!
Allerdings muß ich gestehen, daß sich MySQL Anfragen häufiger nicht mit meiner Logik decken. Vielleicht weißt du einen gute _deutschsprachige_ Dokumentation, die etwas Proxisnäher ist als das MySQL Reference Manual?
Nachmal Danke
Heizer
Moin!
Ich würde das ein ganz kleinwenig anders schreiben:
"select tabelle1.eintrag, tabelle2.gruppename from tabelle1 join
tabelle2 where tabelle1.gruppenid=tabelle2.id"
"select tabelle1.eintrag, tabelle2.gruppename from tabelle1 join
tabelle2 on tabelle1.gruppenid=tabelle2.id"
Der Unterschied: Die erste Variante legt eine temporäre Tabelle mit allen möglichen Kombinationen an, die zwischen allen Einträgen der zwei Tabellen möglich sind, und filtert dann, während die zweite Variante die temporäre Tabelle kleinhält.
Allerdings muß ich gestehen, daß sich MySQL Anfragen häufiger nicht mit meiner Logik decken. Vielleicht weißt du einen gute _deutschsprachige_ Dokumentation, die etwas Proxisnäher ist als das MySQL Reference Manual?
http://www.little-idiot.de/mysql/
- Sven Rautenberg