SQL语句实现交集、并集、差集、笛卡尔积

SQL语句实现交集、并集、差集、笛卡尔积
使⽤ UNION 运算符组合多个结果——并集
SELECT name,num FROM Table1
UNION
SELECT name,num FROM Table2
注意:查询的字段个数必须相同,Table2的字段类型要跟Table1的相同.
宅急便如果使⽤ UNION 运算符,那么单独的 SELECT 语句不能包含其⾃⼰的 ORDER BY 或 COMPUTE ⼦句。只能在最后⼀个 SELECT 语句的后⾯使⽤⼀个 ORDER BY 或 COMPUTE ⼦句;该⼦句适⽤于最终的组合结果集。GROUP BY 和 HAVING ⼦句只能在单独
的 SELECT 语句中指定。
只⽤UNION有重复记录只取⼀条,⽤UNION ALL 时取所有重复记录
JOIN 可以表⽰交集、差集和笛卡尔积
尤里西斯
SELECT * FROM Table1 FULLl JOIN Table2 ON table1.id=table2.id
交集:
SELECT * FROM table1 AS a JOIN table2 AS b ON a.name =b.name
差集:
NOT IN 表⽰差集
SELECT * FROM table1 WHERE name NOT IN (SELECT name FROM table2)
文眉
笛卡尔积:
SELECT * FROM table1 CROSS JOIN table2十八大以来重要文献选编
没有 WHERE ⼦句的交叉联接将产⽣联接所涉及的表的笛卡尔积。第⼀个表的⾏数乘以第⼆个表的⾏数等于笛卡尔积结果集的⼤⼩。
不过,如果添加⼀个 WHERE ⼦句,则交叉联接的作⽤将同内联接⼀样。
石诗龙
注意:不能使⽤ON 关键字,只能⽤WHERE条件
pscunion 和join不⼀样,union这个运算⼦是将资料列合并,⽽join是将栏位合并(我前⾯所讲)!
如果从栏位合并来讲,full join 算是并集,inner join 算是交集!left join 或right join 不完全是差集,也包括交集的结果,具体你的语句的查询结果如何还是要看实际的语句,就如cross join,加上where就变成inner join,前后的结果相差甚远

本文发布于:2024-09-25 17:14:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/473184.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:结果   语句   交集   联接   查询   合并   只能   字段
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议