文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

sql语句中怎么实现联合查询

2024-04-02 19:55

关注

sql语句中怎么实现联合查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

sql语句联合查询详解  

2011-03-01 18:58:22|  分类: mysql|字号 订阅

例子:

person表和user表没有约束

 

有以下几种关联

1.UNION

格式:
查询语句


UNION [ALL] 查询语句


[UNION [ALL] 查询语句][…n]

说明:

ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。


在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:


查询1 UNION (查询2 UNION 查询3) 

执行:select id,name from user UNION select id,name from person;

sql语句中怎么实现联合查询

注意:sql句子栏目数必须是相同的,字段可以随意 2.JOIN

JOIN用于按照ON条件联接两个表,主要有四种:


(一)内连接


INNER JOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。(表示交集)


(二)外连接


LEFT JOIN / LEFT OUTER JOIN:外部联接两个表中的记录,并包含左表中的全部记录。如果左表的某记录在右表中没有匹配记录,则在相关联的结果集中右表的所有选择列表列均为空值。理解为即使不符合ON条件,左表中的记录也全部显示出来,且结果集中该类记录的右表字段为空值。(差集)


RIGHT JOIN / RIGHT OUTER JOIN:外部联接两个表中的记录,并包含右表中的全部记录。简单说就是和LEFT JOIN反过来。(差集)


FULL JOIN / FULL OUTER JOIN: 完整外部联接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右两表的数据都全部显示。(并集)


(三)交叉连接


交叉连接(cross join)不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

JOIN的基本语法(注意结果对比):


1.执行 select * from user as A join person as B on A.id=B.id;或

select * from user as A inner join person as B on A.id=B.id;


结果如下:
sql语句中怎么实现联合查询      2.执行 select A.* from user as A join person as B on A.id=B.id;sql语句中怎么实现联合查询  3.执行select * from user as A left join person as B on A.id=B.id;sql语句中怎么实现联合查询    4.select * from person as A right
join user 
as B on A.id=B.id; sql语句中怎么实现联合查询   5.full join  
mysql 5不支持full join 所以用左关联和右关联进行联合

SELECT * FROM user

LEFT JOIN money ON user.id=money.id

UNION

SELECT * FROM user

RIGHT JOIN money ON user.id=money.id

6.执行 select * from user CROSS JOIN person;
sql语句中怎么实现联合查询

 巧记select * from A left join  B where   条件   其一:  表以from最近表为准则(A表) 其二: join B要放在表A  left  (其中对面中的左右以自身的左右正好相反) 其三:from A表为准则时,Join表有多字段内容,少则为空值NULL  right join正好相反select * from A right join  B where   条件

关于sql语句中怎么实现联合查询问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯