-- 这种场景下得到的是t_name和t_age的交集数据
SELECT n.*,a.* from t_name n,t_age a where n.id = a.id;
SELECT n.*,a.* from t_name n INNER JOIN t_age a on n.id = a.id;
SELECT n.*,a.* from t_name n JOIN t_age a on n.id = a.id;
-- 这种场景下得到的是t_name的所有数据,和满足某一条件的t_age的数据
SELECT n.*,a.* from t_name n LEFT JOIN t_age a on n.id = a.id;
SELECT n.*,a.* from t_name n LEFT outer JOIN t_age a on n.id = a.id;
-- t_name中的所有数据减去"与t_age满足同一条件 的数据",然后得到的t_name剩余数据
SELECT n.*,a.* from t_name n LEFT JOIN t_age a on n.id = a.id where a.id is null;
-- 这种场景下得到的是t_age的所有数据,和满足某一条件的t_name的数据
SELECT n.*,a.* from t_name n right JOIN t_age a on n.id = a.id;
-- t_name中的所有数据减去"与t_age满足同一条件 的数据",然后得到的t_name剩余数据
SELECT n.*,a.* from t_name n right JOIN t_age a on n.id = a.id where n.id is null;
-- union过后,重复的记录会合并,所以结果如下
SELECT n.*,a.* from t_name n LEFT JOIN t_age a on n.id = a.id
UNION
SELECT n.*,a.* from t_name n right JOIN t_age a on n.id = a.id;
-- t_name中的所有数据减去"与t_age满足同一条件 的数据",然后得到的t_name剩余数据
(SELECT n.*,a.* from t_name n LEFT JOIN t_age a on n.id = a.id where a.id is null)
UNION
(SELECT n.*,a.* from t_name n right JOIN t_age a on n.id = a.id where n.id is null);
```
SQL联表查询的几种方式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。