gpt4 book ai didi

mysql - 为什么在 LEFT JOIN 中忽略 WHERE 条件?

转载 作者:可可西里 更新时间:2023-11-01 07:56:22 27 4
gpt4 key购买 nike

我在使用 WHERE 子句限制左侧结果集时遇到问题,即使我将相同的条件放入形成右侧结果集的子查询中也是如此。这是一个例子:

SELECT shareItems.*, likes FROM shareItems LEFT JOIN
(SELECT users_X_shareItems.itemID, COUNT(users_X_shareItems.userID) AS 'likes'
FROM users_X_shareItems, shareItems WHERE shareItems.itemType = 2 AND
users_X_shareItems.liked = 1
GROUP BY users_X_shareItems.itemID) AS likeTable
ON shareItems.itemID = likeTable.itemID AND shareItems.itemType = 2

尽管我在两个查询中都指定了 shareItems.itemType = 2,但它被忽略了。有人知道为什么吗?谢谢。

最佳答案

如果你想限制你的 LEFT JOIN 的左边,你需要把条件放在 WHERE 上,而不是放在 JOIN 上(那只会限制右边):

 ON shareItems.itemID = likeTable.itemID
WHERE shareItems.itemType = 2

关于mysql - 为什么在 LEFT JOIN 中忽略 WHERE 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22850123/

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