gpt4 book ai didi

mysql - 如何在Left Join MySQL之前使用Where

转载 作者:行者123 更新时间:2023-11-29 10:50:47 24 4
gpt4 key购买 nike

我有两个表,其结构如下。首先是用户表:

id  |  email  | password
1 'email' 'pass'
2 'new2' 'pass'

和报告表:

user_id  | field  | text
1 4 Tom

即使用户在report 表中没有匹配项,如何返回emailpassword 值?这就是我到目前为止所拥有的。

    select a.email, a.password, b.text from users a
left join data b
on a.id = b.user_id
and b.field = 4
and a.id = 2;

获取 ID 为 2 的用户信息所需的输出:

email  |   password   | text
'new2' 'pass'

到目前为止我所做的尝试没有得到任何返回

最佳答案

左连接中第一个表的条件位于 where 子句中。 第二 表上的条件位于 on 子句中:

select u.email, u.password, d.text
from users u left join
data d
on u.id = d.user_id and d.field = 4
where a.id = 2;

这条规则乍一看似乎是任意的。然而,事实并非如此。无论on 子句的计算结果是否为 true,left join 都会返回第一个表中的所有行。因此,第一个表上的过滤条件不会过滤掉任何行。 where 子句执行此过滤。

关于mysql - 如何在Left Join MySQL之前使用Where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43768643/

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