查询搜索。按出版物数量订购用户

时间:2015-02-27 21:55:50

标签: mysql sql select

我的查询有问题,希望你能帮助我。 我有两张桌子。

用户

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。玛丽亚有更多的出版物,第一个出现的是玛丽亚的名字。

感谢阅读

2 个答案:

答案 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