gpt4 book ai didi

mysql - 左连接条件

转载 作者:IT老高 更新时间:2023-10-28 23:53:42 27 4
gpt4 key购买 nike

假设我有这些表

create table bug (
id int primary key,
name varchar(20)
)
create table blocking (
pk int primary key,
id int,
name varchar(20)
)

insert into bug values (1, 'bad name')
insert into bug values (2, 'bad condition')
insert into bug values (3, 'about box')
insert into blocking values (0, 1, 'qa bug')
insert into blocking values (1, 1, 'doc bug')
insert into blocking values (2, 2, 'doc bug')

我想加入 id 列的表,结果应该是这样的:

id          name                 blockingName
----------- -------------------- --------------------
1 bad name qa bug
2 bad condition NULL
3 about box NULL

这意味着:我想从#bug 返回所有行在“blockingName”列中应该只有“qa bug”值或 NULL(如果在#blocking 中没有找到匹配的行)


我天真的选择是这样的:

select * from #bug t1 
left join #blocking t2 on t1.id = t2.id
where t2.name is null or t2.name = 'qa bug'

但这不起作用,因为条件似乎首先应用于#blocking 表,然后才加入。

这个问题最简单/典型的解决方案是什么? (我有一个嵌套选择的解决方案,但我希望有更好的东西)

最佳答案

只需将“qa bug”标准放入连接中:

select t1.*, t2.name from #bug t1 
left join #blocking t2 on t1.id = t2.id AND t2.name = 'qa bug'

关于mysql - 左连接条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com