mysql 多表查询
合并结果集 UNION、UNION ALL
把两条SELECT结果集合并显示,被合并的两个数据集必须所有列数,列类型全部一致才会合并。 UNION 合并时去除重复记录。 UNION ALL 合并时不去除重复记录。
多表联查(跨表查询)
使主键与外键保持一致。
去除笛卡尔积 SELECT * from student,score where student.id=score.sid
连接查询
1、内连接(查询两张表的共有部分)
select * from a inner join b on a.id=b.id; select * frrom a join b on a.id=b.id; #inner join 可以省略为 join 其效果等同于 select * from a,b where a.id=b.id;
SELECT sc.id,st.name as '姓名',sc.km, '科目',sc.score '分数' from student st INNER JOIN score sc ON st.id=sc.sid WHERE sc.score>80
2、左连接(把左边表的内容全部查出,右边表只查出满足条件的记录)
SELECT * from person p LEFT JOIN car c on p.pid=c.c_pid; 查询结果如下图。 首先把person表数据查询显示出来,其次根据条件 p.pid=c.c_pid显示满足条件的数据。 如果select * 全部字段,那么两个表所有字段都会显示出来,(表1字段1,表1字段2……,表1字段n,表2字段1,表2字段2……表2字段n)。
3、右连接(把右边表的内容全部查出,左边表只查出满足条件的记录)
SELECT * from person p RIGHT JOIN car c on p.pid=c.c_pid;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)