一、按连接方法分:
1)内连接(只留下符合连接条件的)
SELECT * from 表名1,表名2 WHERE 表名1.列名=表名2.列名
SELECT * from 表名1 INNER JOIN表名2 ON 表名1.列名=表名2.列名
SELECT * from 表名1 别名1,表名2 别名2 WHERE 别名1.列名=别名2.列名
SELECT * from 表名1 别名1 INNER JOIN表名2 别名2 ON 别名1.列名=别名2.列名
注:取了别名,后面只能用别名
2)外连接(可以留下部分不符合条件的数据)
左外连接接:左边的表(主表、驱动表,在“表名1”位置)全部显示,与右边表没匹配上的用null补全。
SELECT * from 表名1 LEFT JOIN 表名2 ON 表名1.列名=表名2.列名
SELECT * from 表名1 LEFT OUTER JOIN 表名2 ON 表名1.列名=表名2.列名
右外连接接:右边的表(主表、驱动表,在“表名2”位置)全部显示,与左边表没匹配上的用null补全。
SELECT * from 表名1 RIGHT JOIN 表名2 ON 表名1.列名=表名2.列名
SELECT * from 表名1 RIGHT OUTER JOIN 表名2 ON 表名1.列名=表名2.列名
3)全外连接,但目前MySQL不支持。
二、自连接(自己和自己连)
SELECT * from 表名1 别名1,表名1 别名2 WHERE 别名1.列名=别名2.列名