Professional Documents
Culture Documents
TsqlJoinTypes 2 PDF
TsqlJoinTypes 2 PDF
SELECT * SELECT *
FROM Table1 t1 FROM Table1 t1
Table1 Table2 Table1 Table2
LEFT OUTER JOIN Table2 t2 RIGHT OUTER JOIN Table2 t2
ON t1.fk = t2.id; ON t1.fk = t2.id;
LEFT OUTER JOIN RIGHT OUTER JOIN
SELECT * SELECT *
FROM Table1 t1 FROM Table1 t1
WHERE EXISTS (SELECT 1 Table1 Table2 WHERE NOT EXISTS (SELECT 1
Table1 Table1
FROM Table2 t2 FROM Table2 t2
http://linkedin.com/in/stevestedman
WHERE t1.fk = t2.id
http://SteveStedman.com
WHERE t1.fk = t2.id
);
);
SEMI JOIN ANTI SEMI JOIN
SELECT * SELECT *
FROM Table1 t1 FROM Table1 t1
Table1 Table2 LEFT OUTER JOIN Table2 t2 Table1 Table2 RIGHT OUTER JOIN Table2 t2
ON t1.fk = t2.id ON t1.fk = t2.id
WHERE t2.id is null; WHERE t1.fk is null;
LEFT OUTER JOIN with exclusion RIGHT OUTER JOIN with exclusion
– replacement for a NOT IN – replacement for a NOT IN
SELECT * SELECT *
FROM Table1 t1 FROM Table1 t1
Table1 Table2 Table1 Table2
FULL OUTER JOIN Table2 t2 CROSS JOIN Table2 t2;
ON t1.fk = t2.id;
FULL OUTER JOIN CROSS JOIN, the Cartesian product
Twitter @SqlEmt
OR t2.id IS NULL;
FULL OUTER JOIN with exclusion NON-EQUI INNER JOIN
SELECT * SELECT *
Table3 Table3
FROM Table1 t1 FROM Table1 t1
FULL OUTER JOIN Table2 t2 INNER JOIN Table2 t2
Table1 Table2 ON t1.fk = t2.id Table1 Table1 ON t1.fk = t2.id
FULL OUTER JOIN Table3 t3 INNER JOIN Table3 t3
ON t1.fk_table3 = t3.id; ON t1.fk_table3 = t3.id;
Two FULL OUTER JOINS Two INNER JOINs
SELECT * SELECT *
Table3 Table3
FROM Table1 t1 FROM Table1 t1
LEFT OUTER JOIN Table2 t2 INNER JOIN Table2 t2
ON t1.fk = t2.id Table1 Table2
ON t1.fk = t2.id
Table1 Table2
LEFT OUTER JOIN Table3 t3 LEFT OUTER JOIN Table3 t3
ON t1.fk_table3 = t3.id; ON t1.fk_table3 = t3.id;
Two LEFT OUTER JOINS INNER JOIN and a LEFT OUTER JOIN