MySQL两个表全连接

表t_student:
在这里插入图片描述
表t_score:
在这里插入图片描述
根据s_number这个字段,把同一数据库下的 t_student表和 t_score表连接起来。
之前用full join一直无法实现全连接,后面才知道Oracle数据库支持full join但是mysql是不支持full join的,但mysql可以使用 union al 模拟全连接。

代码如下:

select * from t_student
left join t_score on t_student.s_number=t_score.s_number
union all
select * from t_student
right join t_score on t_student.s_number=t_score.s_number
where t_student.s_number is null;

在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中两的连接查询是通过JOIN关键字实现的。连接查询可以分为内连接、左连接、右连接和全连接。其中,内连接是指只返回两个中匹配的行,左连接是指返回左中所有行和右中匹配的行,右连接是指返回右中所有行和左中匹配的行,而全连接则是返回两个中所有的行。连接查询的语法格式如下: SELECT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_by_condition> LIMIT <limit_number> 其中,<join_type>可以是INNER、LEFT、RIGHT或FULL,分别对应内连接、左连接、右连接和全连接。而<join_condition>则是连接条件,用于指定两个之间的关联关系。 举个例子,如果我们要查询A和B中dept_no相同的行,可以使用以下SQL语句: SELECT A.*, B.* FROM A INNER JOIN B ON A.dept_no = B.dept_no; 这条语句使用了内连接,只返回了两个中dept_no相同的行。如果我们要返回左A中所有的行和右B中dept_no相同的行,可以使用左连接: SELECT A.*, B.* FROM A LEFT JOIN B ON A.dept_no = B.dept_no; 这条语句使用了左连接,返回了左A中所有的行和右B中dept_no相同的行。如果我们要返回右B中所有的行和左A中dept_no相同的行,可以使用右连接: SELECT A.*, B.* FROM A RIGHT JOIN B ON A.dept_no = B.dept_no; 这条语句使用了右连接,返回了右B中所有的行和左A中dept_no相同的行。如果我们要返回两个中所有的行,可以使用全连接: SELECT A.*, B.* FROM A FULL JOIN B ON A.dept_no = B.dept_no; 这条语句使用了全连接,返回了两个中所有的行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值