MYSQL 按多个连接排序 Children

MYSQL Sorting By Multiple Join Children

我似乎无法找到一种方法来对 sql 查询进行排序 children。

数据库示例:


Table: posts

+------+---------+
| id   | title   |
+------+---------+
| 0    |'title1' |
| 1    |'title2' |
| 2    |'title3' |
+------+---------+

Table: 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       |
+------+---------+----------+---------+

我想要一个按 'coolness' 元编号(升序或降序)排序的 post 列表(或只是 post id)。我不知道我是否应该从 post 中选择 table 并加入元 table 或 vise-versa。当我加入 post_meta table 时,我只从一个元行中获取数据,所以如果我只是通过 post_meta.coolness 添加订单,什么也不会发生。


谢谢!

如果你只想要 id,你可以使用 post_meta table:

select pm.post_id
from post_meta pm
where pm.key = 'coolness'
order by pm.value + 0;

+ 0是将值(大概是字符串)转换为数字

如果您需要其他与​​post相关的专栏,可以加入poststable。