gpt4 book ai didi

MySQL 查询 - SELECT DISTINCT ...(WHERE)问题

转载 作者:行者123 更新时间:2023-11-29 01:46:42 33 4
gpt4 key购买 nike

正在为这个 MySQL 查询而苦苦挣扎。当我取出 WHERE 子句时,所有结果都会显示给用户。所以问题不在于 php 输出。我很确定它在 WHERE 子句中,但我已经被困了很长时间,无法解决。

$test = $db->query
("SELECT DISTINCT(a.id), a.name
FROM test AS a LEFT JOIN(testusers AS b,testclasses AS c, userclasses AS d)
ON (c.classID = d.classID AND a.id = b.testID)
WHERE d.userID='" . $_SESSION["id"] . "' OR b.userID= '" . $_SESSION["id"] . "'
GROUP BY a.id");

感谢您的帮助!

最佳答案

您不应在 WHERE 子句中引用 LEFT JOINed 表中的列(例如,b.userID)。当你这样做时,你隐式地将你的 JOIN 变成了 INNER JOIN。改为将这些测试作为 JOIN 条件的一部分。

不要这样做:

/* Wrong */
SELECT *
FROM test a
LEFT JOIN test2users b
ON a.id = b.testid
WHERE b.userID = 123

改为这样做:

/* Right */
SELECT *
FROM test a
LEFT JOIN test2users b
ON a.id = b.testid
AND b.userID = 123

关于MySQL 查询 - SELECT DISTINCT ...(WHERE)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5146928/

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