以下介绍工作中常用的三种连接查询,都是基于如下数据结构实现。
pro_dish 菜品表:
pro_dish_standard 菜品规格表:
SQL语句的常用三种连接查询:
1、 内连接(inner join 或 join)
内连接是等值连接,它使用“=、>、<、<>”等运算符根据每个表共有的列的值匹配两个表中的行
查询语句:
select * from pro_dish pd inner join pro_dish_standard pds
on pd.id = pds.dish_id
查询结果如下:
内连接只会查询出,连个表中有关联关系的数据。
2、左连接(left join 或 left outer join)
左连接又称左向外连接,查询的结果集包括SQL语句中左表的所有行,右表中匹配的行。如果左表的某行在右表中没有匹配行,则用空值表示。如果左表数据,在右表中有多行匹配,则查询结果左表为多行显示。
查询语句:
select * from pro_dish pd left join pro_dish_standard pds
on pd.id = pds.dish_id
查询结果如下:
3、 右连接(right join 或 right outer join)
右连接也成右向外连接,查询的结果集包括SQL语句中右表的所有行,左表中匹配的行。如果右表的某行在左表中没有匹配的行,则左表数据为空。
查询语句:
select * from pro_dish pd right join pro_dish_standard pds
on pd.id = pds.dish_id
查询结果: