我有以下表格:
- 关键词,
- 关键字_客户,
- 关键字组,
- 客户,
- 团体
表 2 和表 3 是关键字和组以及关键字和客户之间的多对多关系。
我想从关键字表中检索所有记录。但是,我想以这样一种方式对关键字进行排序,即属于特定组的关键字首先出现。我如何实现这一目标?
我希望这是有道理的,并真诚地感谢任何帮助。
我有以下表格:
表 2 和表 3 是关键字和组以及关键字和客户之间的多对多关系。
我想从关键字表中检索所有记录。但是,我想以这样一种方式对关键字进行排序,即属于特定组的关键字首先出现。我如何实现这一目标?
我希望这是有道理的,并真诚地感谢任何帮助。
您需要连接所有要使用的表,但您应该将选择列表限制为仅对您很重要的那些列。从所有表中选择所有列不是强制性的,尽管这是SELECT *
给你的。
像这样的东西:
SELECT k.*
FROM keywords k
JOIN keyword_groups kg ON k.k_id=kg.k_id
JOIN groups g ON kg.g_id=g.g_id
ORDER BY CASE WHEN g.class='Top' THEN 0 ELSE 1 END, g.name, k.name;
如果您只需要查看特定组,只需WHERE
为其添加一个子句。