图解SQL的Join
id name id name---- -- ----1 Pirate 1 Rutabaga2 Monkey 2 Pirate3 Ninja 3 Darth Vader4 Spaghetti 4 Ninja
1. Inner join
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.nameid name id name-- ---- -- ----1 Pirate 2 Pirate3 Ninja 4 Ninja
2. Full outer join
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.nameid name id name-- ---- -- ----1 Pirate 2 Pirate2 Monkey null null3 Ninja 4 Ninja4 Spaghetti null nullnull null 1 Rutabaganull null 3 Darth Vader
3. Left outer join
3.1 产生一个表的完全集
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.nameid name id name-- ---- -- ----1 Pirate 2 Pirate2 Monkey null null3 Ninja 4 Ninja4 Spaghetti null null
3.2 产生一个表存在而另一个表不存在的数据集
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableB.id IS nullid name id name-- ---- -- ----2 Monkey null null4 Spaghetti null null
3.3 产生两个表不同时出现的数据集
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableA.id IS null OR TableB.id IS nullid name id name-- ---- -- ----2 Monkey null null4 Spaghetti null nullnull null 1 Rutabaganull null 3 Darth Vader
SELECT * FROM TableA CROSS JOIN TableB评论






