我的查询有问题,希望你能帮助我。 我有两张桌子。
id_user | 名字| 日期
id_publication | 出版物| 日期| id_user
我希望第一个结果(用户)是已发布的结果
我有这个问题。
SELECT * FROM users WHERE (name LIKE '%" . $word . "%') ORDER BY (SELECT id_user, count(*) FROM publications GROUP BY id_user) DESC
但我没有想要的结果
我想要一个搜索形式的查询,其中打印所有用户并按出版物的数量排序。例如..如果在表用户中这个名字:Maria,Angela。玛丽亚有更多的出版物,第一个出现的是玛丽亚的名字。
感谢阅读
答案 0 :(得分:0)
您可以按如下方式加入两个表格以获得所需的结果:
SELECT *
FROM Users
LEFT JOIN
(SELECT id_user, COUNT(Publication) AS PubCount
FROM Publications
GROUP BY id_user
) as T
ON T.id_user = Users.is_User
ORDER BY T.PubCount DESC
答案 1 :(得分:0)
SELECT * FROM users us WHERE (name LIKE '%" . $word . "%')
ORDER BY (SELECT count(*) FROM publications pub WHERE us.id_user = pub.id_user) DESC