我有两个表,一个项目,一个标记了项目的用户。这是一个例子:
items: flags:
item_id | item_name | owner_id item_id | flagged_by
------------------------------ --------------------
1 | foo | 1 1 | 2
2 | bar | 2 2 | 4
3 | baz | 2 2 | 7
2 | 7
我想从项目表中选择有关标志表中所有项目的信息,按标志数排序。所以对于上面的例子,我想要的输出是
item_id | item_name | owner_id
------------------------------
2 | bar | 2
1 | foo | 1
我现在的查询是select * from items where id in (select item_id from flags group by item_id order by count(*) desc);
我知道内部查询可以正常工作(以正确的顺序返回所有 ID),但是当我运行整个查询时,我只是按项目 ID 的顺序获取项目。如何修复我的查询?