gpt4 book ai didi

mysql - SQL - 连接 2 个表,根据条件显示 tbl1 中的所有数据和 tbl2 中的数据

转载 作者:行者123 更新时间:2023-11-29 16:00:52 26 4
gpt4 key购买 nike

我试图显示数据库中所有用户的完整列表以及第二个表中的额外信息,具体取决于他们在第二个表中是否有记录

我正在使用 MySQL,我尝试了一些左连接/右连接联合组合,但没有任何效果

SELECT users.id, users.name, success.URL_ID, success.docreqid FROM users
LEFT JOIN success ON users.id = success.userid
where docreqid IS NULL
union
SELECT users.id, users.name, success.URL_ID, success.docreqid FROM users
RIGHT JOIN success ON users.id = success.userid
where docreqid = 1;

我有一个包含 10 个用户的小表。我的数据库中只有一个用户在成功表中拥有针对 docreqid '1' 的记录。我想要一个包含所有用户的表格以及他们的表单的 URL_ID(如果他们已提交)。

上面的代码非常适合这个。

如果我将最后一行更改为:

where docreqid = 2;

我只得到 9 个结果(缺少具有 docreqid '1' 记录的用户)。

我希望此表显示所有 10 个用户,并在 URL_ID 和 docreqid 列中显示“NULL”,直到他们完成所需的操作。

最佳答案

左连接应该执行您想要的操作:

SELECT u.id, u.name, s.URL_ID, s.docreqid
FROM users u LEFT JOIN
success s
ON u.id = s.userid AND s.docreqid = 1;

LEFT JOIN 返回第一个表中的所有行 - 没有 WHERE 过滤结果。 ON 仅匹配 success 中满足 ON 子句中附加条件的行。

关于mysql - SQL - 连接 2 个表,根据条件显示 tbl1 中的所有数据和 tbl2 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56210642/

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