0
我有这个疑问,工作正常Mysql的GROUP BY在LEFT JOIN和ORDER BY
$query = "SELECT
beva_post.*,
CONVERT_TZ(beva_post.date_published, '-00:00', '+00:00') as moment,
beva_rubrique.titre_en,
beva_user.image_user
FROM beva_post
LEFT JOIN beva_user
ON beva_user.id_user = beva_post.id_user
LEFT JOIN beva_rubrique
ON beva_rubrique.id_rubrique = beva_post.id_rubrique
LEFT JOIN beva_post_like
ON beva_post_like.id_post = beva_post.id_post
WHERE beva_post.id_user != ''
AND beva_post.flag = 'true' ";
$query .= "ORDER BY beva_post.id_post DESC ";
$query .= "LIMIT 50";
但我想订购此查询未通过id_post DESC但id_post具有由id_user最喜欢(DESC )表beva_post_like
的beva_post_like表看起来像这样:
+-------------+--------------+
| id_post | id_user |
+-------------+--------------+
| 1 | 20 |
| 1 | 11 |
| 1 | 10 |
| 2 | 20 |
| 2 | 50 |
| 1 | 15 |
+-------------+--------------+
我GROUP BY试图在LEFT JOIN beva_post_like,但它不工作!
我必须使用更多的查询吗?
感谢您的帮助......
克里斯
你的答案后,我这样做,但我仍然有一些职位与“喜欢”末
$query = "SELECT
beva_post.*,
COUNT(beva_post.id_post) as cpt,
CONVERT_TZ(beva_post.date_published, '-00:00', '+00:00') as moment,
beva_rubrique.titre_en,
beva_user.image_user
FROM beva_post
LEFT JOIN beva_user
ON beva_user.id_user = beva_post.id_user
LEFT JOIN beva_rubrique
ON beva_rubrique.id_rubrique = beva_post.id_rubrique
LEFT JOIN beva_post_like
ON beva_post_like.id_post = beva_post.id_post
WHERE beva_post.id_user != ''
AND beva_post.flag = 'true' ";
$query .= "GROUP BY beva_post.id_post ";
$query .= "ORDER BY cpt DESC ";
$query .= "LIMIT 50";
我需要由那些最喜欢用户的人订购帖子。没有任何喜欢的职位也必须展示,但最后。 – Chris
不,它不工作! – Chris
为什么它不起作用? “GROUP BY”没有返回任何结果?你能用新的查询编辑第一篇文章吗? – Damien