我有一个表 A,它有一个“ID”和“消息”,另一个表 B 是有序的。我希望根据表 B 中的排序方式订购表 A。
示例 - 表 A:
ID Message
-------------
1 ABC
2 DEF
3 HIJ
4 KLM
5 NOP
表 B:
ID
---
5
2
4
1
3
预期结果:
ID Message
-------------
5 NOP
2 DEF
4 KLM
1 ABC
3 HIJ
我有以下查询:
SELECT DISTINCT s.message, s.stream_id
FROM Stream s
ORDER BY ..... ;
我该怎么做?显然使用 FIND_IN_SET 没有考虑表 B 的顺序
更新
表 B 的排序如下:
SELECT stream_id
FROM SearchCache
GROUP BY stream_id
ORDER BY COUNT(stream_id);
因此,查询应该如下所示:
SELECT DISTINCT s.message, s.stream_id
FROM Stream s
ORDER BY s.stream_id *SOMETHING* (SELECT stream_id
FROM SearchCache
GROUP BY stream_id
ORDER BY COUNT(stream_id)) ASC;