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 に答える