我似乎无法找到一种方法来对已加入的孩子进行SQL查询排序。
数据库示例:
表:帖子
+------+---------+
| id | title |
+------+---------+
| 0 |'title1' |
| 1 |'title2' |
| 2 |'title3' |
+------+---------+
表: post_meta
+------+---------+----------+---------+
| id | post_id | key | value |
+------+---------+----------+---------+
| 0 |0 |'coolness'| 5 |
| 1 |0 |'desc' |'random' |
| 2 |0 |'author' |'bill' |
| 3 |1 |'coolness'| 2 |
| 4 |1 |'desc ' |'random' |
| 5 |2 |'author' |'joe' |
| 6 |2 |'coolness'| 9 |
+------+---------+----------+---------+
我想要一个帖子列表(或者只是帖子ID),这些帖子是由他们的“酷”'元数(asc或desc)。我不知道我是应该从posts表中选择并加入元表,反之亦然。当我加入post_meta表时,我只从其中一个元行获取数据,所以如果我只是通过post_meta.coolness添加一个订单就没有任何反应。
谢谢!
答案 0 :(得分:2)
如果您只想要id
,可以使用post_meta
表:
select pm.post_id
from post_meta pm
where pm.key = 'coolness'
order by pm.value + 0;
+ 0
是将值(可能是字符串)转换为数字。
如果您需要与帖子相关的其他列,您可以加入posts
表。