gpt4 book ai didi

mysql - SQL多表一个条件不合适

转载 作者:行者123 更新时间:2023-11-29 02:40:05 29 4
gpt4 key购买 nike

我有这个 sql:

SELECT logins.*, users.*, invoices.number
FROM logins,
users,
invoices
WHERE logins.user_id = users.id
AND users.id = invoices.userId;

这是我声明的简化版本。现实要复杂得多。

什么时候

users.id=invoices.userId

是假的(因为表 invoices 不包含带有这个 userId 的行)我需要添加到 invoices.number=0。

最佳答案

即使没有找到发票,也可以使用 left join 返回行。对于这些行,invoices 表中的列将为 null。在这种情况下,您可以使用 coalesce 返回 0 而不是 null:

SELECT  logins.*
, users.*
, COALESCE(invoices.number, 0) AS number
FROM logins
JOIN users
ON logins.user_id = users.id
LEFT JOIN
invoices
ON users.id = invoices.userId

关于mysql - SQL多表一个条件不合适,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54569306/

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