Warum brauchen wir Joins in MySql?
Wenn wir eine "orders" Tabelle haben und uns eine Bestellung mit dem Foreign Key 3 nehmen.
Jetzt wollen wir mithilfe des Foreign Keys den dazugehörigen Nutzer finden.
Warum sollte man JOIN benutzen, um die "user" Tabelle mit der "orders" Tabelle zu vermischen, wenn wir den Nutzer auch bekommen mit SELECT * FROM user WHERE id=3?
4 Antworten
In dem Fall solltest du das nicht. Es geht ja eher darum, wenn du Daten aus mehreren Tabellen gleichzeitig möchtest, sprich in deiner Anwendung mit einem konsistenten Aggregat arbeitest oder weil du die User-Id eben gar nicht kennst, sondern gerade nur einen Auftrag siehst und der User über diesen Auftrag reingeholt wird.
Brauchst du die Daten der zweiten Tabelle nicht, dann kann man natürlich auch mit IN, EXISTS usw. arbeiten, statt mit einem JOIN.
Um die Daten aus zwei Tabellen in einem Datensatz zusammenzufassen. Dadurch spart man sich mehrere SQL Queries und hat die Daten direkt in einem Objekt, und muss nicht die Daten von mehreren Queries zusammenfügen.
hier werden alle join arten grundlegend erklärt
https://www.datenbanken-verstehen.de/sql-tutorial/sql-joins/
http://sqlfiddle.com/#!9/389f0c2/7
weil du damit viel schnell in einem abwasch 2 tabellen verbinden kannst z.b. user und orders zuordnen
der grundsatz ist: alles was du in mysql erledigen kannst, tu es.
mysql bzw eine datenbank ist um welten schneller als andere programiersprachen wenn es um daten geht.
das wirst du merken wenn es um zehn- oder hunderttausende einträge geht