我想从元素表中选择所有元素,但要有一个额外的列,说明它们的任何注释是否具有管理员状态。如果发布状态“管理”列的用户为1,则评论的状态为“管理员”。

我不知道如何针对要查询的每个元素浏览每个注释。

在该程序的另一部分中,有一个查询可以记录单个问题的所有注释,我能够推理出在那里确定管理员状态的方法,但是我想不出一种方法来查询提出了多个问题。

SELECT comments.id, comments.elementID, comments.googleID, comments.time, comments.body, users.name, users.admin
FROM comments
LEFT JOIN users ON comments.googleID = users.googleID
WHERE comments.elementID = ? AND comments.approved = 1
ORDER BY comments.time DESC


mysql - 如何在MySQL中扫描多个项目?-LMLPHP
mysql - 如何在MySQL中扫描多个项目?-LMLPHP
mysql - 如何在MySQL中扫描多个项目?-LMLPHP

最佳答案

要知道哪些元素具有管理员用户的评论,您可以简单地执行以下操作:

SELECT C.elementID, MAX(U.admin) AS admin
FROM comments C
LEFT JOIN users U ON C.googleId = U.googleID
WHERE C.approved = 1
GROUP BY C.elementID;


然后使用其他admin列获取所有元素:

SELECT E.*, CASE WHEN A.admin = 1 THEN 1 ELSE 0 END AS admin
FROM elements E
LEFT OUTER JOIN
    (SELECT C.elementID, MAX(U.admin) AS admin
     FROM comments C
     LEFT JOIN users U ON C.googleId = U.googleID
     WHERE C.approved = 1
     GROUP BY C.elementID) A
ON E.id = A.elementID

关于mysql - 如何在MySQL中扫描多个项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32682971/

10-11 23:00
查看更多