Während ich größere, fortschrittlichere Webanwendungen erstelle, stelle ich fest, dass ich extrem lange und komplexe Abfragen schreibe. Ich schreibe häufig Abfragen in Abfragen, weil ich glaube, dass ein Aufruf an die Datenbank von PHP besser ist, als mehrere zu machen und die Daten zu korrelieren.Abfragen in Abfragen: Gibt es einen besseren Weg?
Allerdings weiß jeder, der etwas über SQL weiß über JOIN
s. Persönlich habe ich eine JOIN
oder zwei zuvor verwendet, aber schnell gestoppt, als ich die Verwendung von Unterabfragen entdeckte, weil es sich leichter und schneller für mich zu schreiben und zu pflegen fühlte.
Normalerweise werde ich Unterabfragen tun, die eine oder mehrere Unterabfragen von relativen Tabellen enthalten können.
Betrachten Sie dieses Beispiel:
SELECT
(SELECT username FROM users WHERE records.user_id = user_id) AS username,
(SELECT last_name||', '||first_name FROM users WHERE records.user_id = user_id) AS name,
in_timestamp,
out_timestamp
FROM records
ORDER BY in_timestamp
Selten, ich werde Subqueries nach der WHERE
Klausel tun.
Betrachten Sie dieses Beispiel:
SELECT
user_id,
(SELECT name FROM organizations WHERE (SELECT organization FROM locations WHERE records.location = location_id) = organization_id) AS organization_name
FROM records
ORDER BY in_timestamp
In diesen beiden Fällen würde ich sehen, jede Art von Verbesserung, wenn ich die Abfragen mit einem JOIN
neu zu schreiben entschieden?
Wie eine allgemeine Frage, was sind die Vor-/Nachteile der Verwendung von Unterabfragen oder JOIN
? Ist der eine Weg richtiger oder akzeptierter als der andere?
Ich wollte nur erwähnen, dass das Lernen, wie Joins arbeiten zunächst verwirrend ist, aber wenn Sie sie verwenden, dauert es nicht lange, bis sie sich natürlich fühlen. –