交叉链接
交叉连接:将两张表的数据与另外一张表彼此交叉
交叉连接查询是从一张表中循环取出每一条记录,然后将每条记录都在另外一张表中进行匹配,匹配结果都会保留,而连接本身字段会增加,其最终结果称为笛卡尔积,它是使用关健字CROSS JoIN来进行叉连接查询的
语法:
- select * from 表1 cross join 表2 on ...
- 交叉连接如果没有连接条件返回笛卡尔积
- 如果有连接条件和内连接是一样的
SELECT * FROM person CROSS JOIN address
SELECT * FROM person,address
右查询
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值(null)
select * from person RIGHTJ0IN address oN person .PersonId = address.PersonId
查询结果:注意此处AddressId = 6的'广东'也输出并且由于‘广东'不存在对应的person,所以preson的数据null
左查询
select * from person LEFT JOIN address oN person.PersonId = address .personId
查询结果:注意此处PersonId = 4的‘小孙'也输出并且由于‘小孙'不存在对应的address,所以