1 SELECT * FROM TableA INNER JOIN TableB 2 ON TableA.name = TableB.name 3 id name id name 4 -- ---- -- ---- 5 1 Pirate 2 Pirate 6 3 Ninja 4 Ninja 7 8 9 Inner join 10 产生的结果集中,是A和B的交集。 11 Venn diagram of SQL inner join 12 SELECT * FROM TableA FULL OUTER JOIN TableB 13 ON TableA.name = TableB.name 14 id name id name 15 -- ---- -- ---- 16 1 Pirate 2 Pirate 17 2 Monkey null null 18 3 Ninja 4 Ninja 19 4 Spaghetti null null 20 null null 1 Rutabaga 21 null null 3 Darth Vader 22 23 24 Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。 25 Venn diagram of SQL cartesian join 26 SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name 27 id name id name 28 -- ---- -- ---- 29 1 Pirate 2 Pirate 30 2 Monkey null null 31 3 Ninja 4 Ninja 32 4 Spaghetti null null 33 34 35 Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。 36 Venn diagram of SQL left join 37 SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableB.id IS null 38 id name id name 39 -- ---- -- ---- 40 2 Monkey null null 41 4 Spaghetti null null 42 43 44 产生在A表中有而在B表中没有的集合。 45 join-left-outer.png 46 SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableA.id IS null OR TableB.id IS null 47 id name id name 48 -- ---- -- ---- 49 2 Monkey null null 50 4 Spaghetti null null 51 null null 1 Rutabaga 52 null null 3 Darth Vader 53 54
原文地址:http://www.nowamagic.net/librarys/veda/detail/936
原文:http://www.cnblogs.com/myblogslh/p/5236869.html