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相关的专栏,可以加入posts
table。
我似乎无法找到一种方法来对 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相关的专栏,可以加入posts
table。