zu filtern Ich habe Zweifel seit einiger Zeit ... Was ist der beste Weg, um die Einträge auf einem SQL-Join zu filtern .... ich meine, ist besser auf der WHERE-Klausel oder auf der ON der Verbindung?Was ist der beste Weg, Ergebnis auf JOIN (sql)
Zum Beispiel, was ist besser? Dieser Code-Schnipsel mit den WHERE
SELECT
customer.users_id AS CustID,
FROM customer
LEFT JOIN visit ON customer.users_id = visit.CustID
WHERE visit.active = 1
Oder dieser anderen Art und Weise (diese Filter auf dem ON):
SELECT
customer.users_id AS CustID,
FROM customer
LEFT JOIN visit ON (customer.users_id = visit.CustID AND visit.active=1)
Danke.
Der erste ist die bessere Antwort. – kingtut007
Mein Bauchgefühl sagt mir, dass es Situationen gibt, in denen die beiden Ihnen nicht die gleiche Antwort geben (obwohl ich mir nicht einen von ganz oben vorstellen kann). Unabhängig davon sollten sie in diesen Situationen die gleiche Antwort geben, und die zweite sollte "effizienter" sein. Der SQL-Interpreter ist jedoch ziemlich intelligent, so würde ich annehmen, dass die Anweisungen in der gleichen Zeit laufen würden. Daher kommt es auf Stil an. Im Allgemeinen ist eine where-Klausel besser, weil sie beide Tabellen im JOIN nicht beeinflusst. – BrandonM