gpt4 book ai didi

mysql - 需要具有 UserID 或 NULL 值的所有 MySQL 结果 - 无需额外的 UserID

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

当用户访问我的网站时,他们单击“添加”或“删除”项目...“添加”或“删除”消息有时与应有的内容相反。例如,当您单击按钮时,它会改变颜色。如果值不是“Y”,则为灰色;如果为“Y”,则为红色。有时它是相反的。这是因为我使用 GROUP BY 子句下面的查询来避免重复(这种情况发生在集合表中,因为每个用户都会向此交集表添加一条新记录)。如果没有 group by 子句,就会有很多重复项。

SELECT a.AmiiboID, a.Name, a.ImageURL, c.Favorited, c.Collected, c.WishList, c.UserID
FROM Amiibo a
LEFT JOIN Collection c ON a.AmiiboID = c.AmiiboID
GROUP BY a.AmiiboID

Results from above query:

我也尝试过这样做:

SELECT a.AmiiboID, a.Name, a.ImageURL, c.Favorited, c.Collected, c.WishList, c.UserID
FROM Amiibo a
LEFT JOIN Collection c ON a.AmiiboID = c.AmiiboID
WHERE c.UserID = 2 OR c.UserID IS NULL

上述查询的结果...注意 AmiiboID 0-4 丢失,因为它们是由 UserID1 添加的

Results from above query... Notice AmiiboID 0-4 are missing because they were added by UserID1

但是,这样做的问题是它排除了其他用户添加的记录。因此,如果用户 ID 1 输入第 1-5 行...则不会显示第 1-5 行。

我需要始终从 Amiibo 表中获取所有记录,并从具有 UserID 2 的集合中获取记录(在本例中)。如果其他用户(例如UserID:1)添加了记录,则忽略它们。我还需要没有重复项。

这可能吗?

谢谢你,特拉维斯·W.

最佳答案

使用LEFT JOIN时,将c.UserID检查放入ON子句中。

SELECT a.AmiiboID, a.Name, a.ImageURL, c.Favorited, c.Collected, c.WishList, c.UserID
FROM Amiibo a
LEFT JOIN Collection c
ON a.AmiiboID = c.AmiiboID
AND c.UserID = 2

在这种情况下,无需检查 NULL

关于mysql - 需要具有 UserID 或 NULL 值的所有 MySQL 结果 - 无需额外的 UserID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562884/

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