我正在尝试使用 2 个左连接从 3 个表中选择变量。
SELECT a.username, a.id, COUNT(c.featured)
FROM user a
LEFT JOIN board b
ON a.id = b.user_id
LEFT JOIN pins c
ON a.id = c.user_id
WHERE c.featured='yes'
GROUP BY b.board_name
ORDER BY COUNT(c.featured) ASC
LIMIT 3
这应该从数据库中获取 3 个得分最高的板 block ,并根据它们出现的次数升序排列。我用它来回显:
".$info['b.board_name']."
但是没有显示任何内容
最佳答案
我不确定您是否想要 b.boardname
或 a.username, a.id
在您的 SELECT
中,但您有相应地执行GROUP BY
:
尝试这样做:
SELECT a.username, a.id, COUNT(c.featured)
FROM user a
LEFT JOIN board b ON a.id = b.user_id
LEFT JOIN pins c ON a.id = c.user_id
WHERE c.featured = 'yes'
GROUP BY a.username, a.id
ORDER BY COUNT(c.featured) DESC LIMIT 3
或者
SELECT b.board_name, COUNT(c.featured)
FROM user a
LEFT JOIN board b ON a.id = b.user_id
LEFT JOIN pins c ON a.id = c.user_id
WHERE c.featured = 'yes'
GROUP BY b.board_name
ORDER BY COUNT(c.featured) DESC LIMIT 3
关于mysql - SQL JOIN 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357385/