【发布时间】:2013-07-30 16:09:56
【问题描述】:
我的这个查询很好用
$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 在表 beva_post_like 中最喜欢的 id_user (DESC)
beva_post_like 表如下所示:
+-------------+--------------+
| id_post | id_user |
+-------------+--------------+
| 1 | 20 |
| 1 | 11 |
| 1 | 10 |
| 2 | 20 |
| 2 | 50 |
| 1 | 15 |
+-------------+--------------+
我尝试在 LEFT JOIN beva_post_like 中使用 GROUP BY,但它不起作用!
我必须使用更多查询吗?
感谢您的帮助...
克里斯
在你回答之后,我这样做了,但我仍然有一些帖子最后带有“喜欢”
$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";
【问题讨论】:
标签: mysql group-by sql-order-by left-join