Lassen Sie mich also mit dem Vorwort sagen, dass ich kein SQL-Assistent bin. Was ich tun möchte, ist ein einfaches Konzept, hat mich aber mit einer kleinen Herausforderung konfrontiert, als ich versuchte, die Anzahl der Datenbankabfragen zu minimieren, die ich ausführe.Minimieren von SQL-Abfragen mithilfe von Join mit einer 1: n-Beziehung
Sagen wir, ich habe eine Tabelle von Abteilungen. In jeder Abteilung gibt es eine Liste von Mitarbeitern.
Was ist der effizienteste Weg, um alle Abteilungen aufzulisten und welche Mitarbeiter in jeder Abteilung sind.
So zum Beispiel wenn ich eine Abteilung Tisch mit:
id name
1 sales
2 marketing
Und einen Menschen Tisch mit:
id department_id name
1 1 Tom
2 1 Bill
3 2 Jessica
4 1 Rachel
5 2 John
Was ist der beste Weg Liste alle Abteilungen und alle Mitarbeiter für jeden Abteilung wie folgt:
Verkäufe
- Tom
- Bill
- Rachel
Marketing-
- Jessica
- John
Täuschen Sie vor, beide Tabellen sind wirklich massiv. (Ich möchte vermeiden, eine Liste von Abteilungen zu erhalten, und dann das Ergebnis durchlaufen und eine individuelle Abfrage für jede Abteilung durchführen). Ähnliches gilt für die Auswahl der Status/Kommentare in einem Facebook-ähnlichen System, wenn Status und Kommentare in separaten Tabellen gespeichert sind.
+1 für den Versuch, die Schleife Mentalität des imperativen Programmierers zu befreien. Es ist es wert. – spender