目录
2. 内连接inner join xxx on xxx多表联合查询
1.union联合查询
select age,gender from info union select name, tel from gays;
从info表中查找出字段是age和gender的数据 并且 在gays表中查找出字段是name和tel的数据。
最后返回两个字段:
2. 内连接inner join xxx on xxx多表联合查询
先看一下表的结构:gays, info
info和gays两张表的id联合在一起为同一个id,就是说需要有一个公共字段,具体语法如下:
可以id这个字段的名字不一样,只要能对应起来就行。
select gender,age from gays inner join info on gays.id=info.id;
输出结果如下:
3. 左连接left join
以左表为基准,左表有几条数据,就返回几条数据;左表有五条数据就返回五条数据,如果这五条数据中,其中两条公共字段右表也有,则返回要查询的字段,剩余三条右边表没有的字段则返回null。
表的内容:
具体操作代码 :
select gender,age from gays left join info on gays.id=info.id;
结果:
返回2个字段gender和age,gays这张表为左表,info这张表为右表,公共字段为gay里的id和info里的id,左查询的时候以左表为基础,左表有五条数据,返回五条数据,其中1,3数据右表也有,其余三条数据右表没有,则返回nul。
4. 右连接 right join
与左连接相似。
5. cross join交叉连接
select * from gays cross join info;
结果:返回一个笛卡尔积
6. natural join 自然连接
找一样的来连接,与内连接差不多,但是不用指定相同字段。。
是找字段名一样的来连接。 --------如果没有一样的公共字段则返回笛卡尔积。
--------如果有多个则全返回null
select * from gays natural join info;
结果: