登录
首页 >  数据库 >  MySQL

左关联的一条SQL语句(mysql)

来源:SegmentFault

时间:2023-02-24 17:43:07 471浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《左关联的一条SQL语句(mysql)》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

左关联的一条SQL语句(mysql):

SELECT *
FROM b 
    LEFT JOIN a
    ON a.trans_id=b.id
    AND a.target_col = 'date'
WHERE a.target_col IS NULL

说明:

b
a
是一对多的关系。

初看该语句,发现条件中既是

a.target_col='date'
又是
a.target_col is null
,似乎有矛盾。
其实不是,该语句没有问题。分析如下:

语句分析:
1)查找

b
a
的左关联数据;
2)因为
b
a
是一对多的关系,通过增加条件
a.target_col = 'date'
,限制关联这一条数据;
3)如果
a
中没有
target_col='date'
的记录,则关联出一条null的记录;
4)最后通过
where
条件,过滤出
a
b
有关联关系,且
a
中未配置
target_col='date'
的记录。

比如有数据:

未命名文件(2).png

SELECT * FROM t1
LEFT JOIN t2
ON t1.name = t2.name
AND t2.type = 'b1'
WHERE t2.name IS NULL

过滤出

t1
中的记录
a3
a3
t2
中,没有
type
b1
的记录。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>