create table A(id int);
create table B(id int);
INSERT INTO A VALUES(1);
INSERT INTO A VALUES(2);
INSERT INTO A VALUES(3);
INSERT INTO B VALUES(1);
INSERT INTO B VALUES(2);
INSERT INTO B VALUES(3);
SELECT * FROM A;
SELECT * FROM B;
id
-----------
1
2
3
id
-----------
1
2
3
Filter auf der JOIN-Reihen zu verhindern, dass während des Prozesses JOIN hinzugefügt wird.
select a.*,b.*
from A a left join B b
on a.id =b.id and a.id=2;
id id
----------- -----------
1 NULL
2 2
3 NULL
WHERE wird gefiltert, nachdem der JOIN aufgetreten ist.
select a.*,b.*
from A a left join B b
on a.id =b.id
where a.id=2;
id id
----------- -----------
2 2
http://stackoverflow.com/questions/10297231/where-clause-vs-on-when-using-join – Habib
Nicht ein Duplikat, 'LEFT JOIN' hier signifikant ändert die Frage. – hvd
@hvd - die Fragen sind vielleicht nicht exakt Duplikate, aber da die meisten Antworten im Sinne von "es ist egal für" INNER JOIN ", aber hier wäre was anders für" OUTER JOIN's ... " –