mysql的内连接,左连接,右连接,子查询(部分转载,部分自己整理)

1.表连接(内连接)

select 字段1,字段2...from 表1,表2 where 表1.字段3=表2.字段3(注意表和字段之间有个点)

关键字:inner join on
语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
 
解读:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。

2.表外连接(左连接)

关键字:left join on / left outer join on
语句:select * from a_table a left join b_table bon a.a_id = b.b_id;
说明:
left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。
左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
3.表外连接(右连接)
关键字:right join on / right outer join on
语句:select * from a_table a right  join b_table b on a.a_id = b.b_id;
说明:
right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
4.子查询
关键字:in
语句:select *from 表1 where 字段名 in (select *from 表 where 条件)
子查询主要是对结果集,就是后面的括号内的内容,在进行一次筛选
需要注意的几个点
 
1.子查询在 SELECT 子句中只能有一个列
2.子查询返回多于一行,只能与多值运算符一起使用,如 IN 运算符
 
例子:
SELECT *FROM A WHERE id in (SELECT id FROM B);

 

 

posted @ 2020-06-02 15:11  超级奶爸丁先生  阅读(657)  评论(0编辑  收藏  举报