セットの交差点

私はSQLソリューションがこのタイプの問題のために何であるかを覚えようとしています。私は次のテーブルを持っているとしましょう:

tagged_nodes:

  1. nid – Node id. Foreign key.
  2. tid – Tag id. Foreign key.
  3. tnid – Primary key (irrelevant to the problem at
    hand).

nodes:

  1. nid – Node id. Primary key.
  2. … – Other columns are irrelevant.

タグID( tid
)のセットがあると仮定して、関連するノード(交差点)のセットを返したいとします。これはどうすればいいですか?

ベストアンサー

SELECT nodes.* FROM nodes                           /* Load node info */
JOIN tagged_nodes ON tagged_nodes.nid = nodes.nid   /* Match node-tag rows with node rows */
WHERE tagged_nodes.tid IN (1, 2, 3)                 /* Filter using tag relationship */

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です