A(左)、B(右)两表,都以key为关联条件(A.key = B.key),key存在null值。1、内连接(将两表共有数据取出)SELECT * FROM A INNER JOIN B ON A.key = B.key;2、左连接(取出 右表独有数据 和 与左表能关联起来的数据)SELECT * FROM A LEFT JOIN B ON A.key = B.key;3、右连接(取出 左表独有数据 和 与右表能关联起来的数据)SELECT * FROM A RIGHT JOIN B ON A.key = B.key;4、只取左表(A)独有数据(通过where关联条件过滤,先保证左连接结果不变化,再使用where过滤左右两表能匹配的数据,即B.key IS NULL)SELECT * FROM A LEFT JOIN B ON A.key = B.key WHERE B.key IS NULL;5、只取右表(B)独有数据(同上)SELECT * FROM A LEFT JOIN B ON A.key = B.key WHERE B.key IS NULL;6、全连接(取出左右两表的所有数据)- MySQL不支持,可以通过union实现相同效果SELECT * FROM A FULL OUTER JOIN B ON A.key = B.key ;7、取出左右两表各自独有数据(即左右表的key为null时)SELECT * FROM A FULL OUTER JOIN B ON A.key = B.key WHERE A.key IS NULL OR B.key IS NULL OR;
A(左)、B(右)两表,都以key为关联条件(A.key = B.key),key存在null值。
1、内连接(将两表共有数据取出)
2、左连接(取出 右表独有数据 和 与左表能关联起来的数据)
3、右连接(取出 左表独有数据 和 与右表能关联起来的数据)
4、只取左表(A)独有数据(通过where关联条件过滤,先保证左连接结果不变化,再使用where过滤左右两表能匹配的数据,即B.key IS NULL)
5、只取右表(B)独有数据(同上)
6、全连接(取出左右两表的所有数据)- MySQL不支持,可以通过union实现相同效果
7、取出左右两表各自独有数据(即左右表的key为null时)