gpt4 book ai didi

MySQL left join variation - 甚至在丢失的行上选择

转载 作者:行者123 更新时间:2023-11-29 04:42:04 25 4
gpt4 key购买 nike

我已经可以弄清楚如何从主表中连接和选择行,即使辅助表没有匹配的行。我想要的有点不同。

Table A:  id, pid
Table B: id, pid, uid, aid

我想要的是表 A 中的所有 pids,以及匹配的 aid,如果它存在,对于给定的 uid

也就是说,如果示例数据是:

表A:

1,  p1
2, p2
3, p3

表 B:

1, p1,  u1,   abcd
2, p1, u2, pqrs
3, p2, u1, wxyz

我要选择:

p1,   abcd
p2, wxyz
p3, NULL

(u1 的所有条目,如果没有条目则使用 aid=NULL)。

基本上,我已经尝试过:

SELECT A.* FROM A LEFT JOIN B ON A.pid=B.pid WHERE uid='u1'

它不起作用(我明白为什么它不会)。

最佳答案

您可以使用 left join 执行此操作,但是您需要将 b.uid 上的条件移动到 on 子句中where 子句:

select a.id, a.pid, b.aid
from a left join
b
on a.pid = b.pid and b.uid = 1;

关于MySQL left join variation - 甚至在丢失的行上选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26345570/

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