MYSQL 表连接查询,左/右/内连接
若有2个表
数据库表准备
category表
dish表
常见连接解释
左连接查询
左连接就是到时候会保留左边表的信息,不管最后满不满足表达式条件
比如 我们想查询套餐和菜品对应category(id)和dish(category_id)相同的数据
使用语句
select c.*,d.name from category c left join dish d on c.id=d.category_id;
这里就保留category的全部数据,即使对应多条dish表,也展示出来,dish不满住表达式,如果没有那么就是NULL;
结果如下:
右连接查询
select c.*,d.name from category c right join dish d on c.id=d.category_id;
这里查询出来全部都符合,可能就看不出右连接什么特点,这边就改下dish表的category_id数据字段为一个不存在的category表中的id
改为999以后,再来查询右连接的情况
这边就可以看出保留了右边的表,左边的套餐不存在就是null;
内连接
这个就是交集的意思,值显示满足条件的数据,不会有null的情况
select c.*,d.name from category c inner join dish d on c.id=d.category_id;