0

我有以下表格:

  1. 关键词,
  2. 关键字_客户,
  3. 关键字组,
  4. 客户,
  5. 团体

表 2 和表 3 是关键字和组以及关键字和客户之间的多对多关系。

我想从关键字表中检索所有记录。但是,我想以这样一种方式对关键字进行排序,即属于特定组的关键字首先出现。我如何实现这一目标?

我希望这是有道理的,并真诚地感谢任何帮助。

4

1 回答 1

2

您需要连接所有要使用的表,但您应该将选择列表限制为仅对您很重要的那些列。从所有表中选择所有列不是强制性的,尽管这是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为其添加一个子句。

于 2013-09-19T15:16:14.937 回答