2012-02-12 8 views
0

に参加私に説明してみましょう:MySQLは、私は私が望む結果を得ることができない3つのテーブルのトリック

私は2つのテーブルがあります。

  • カテゴリー
  • PROJECTS

とそれらの間にリンクを作成する別のテーブル:

私は CATEGORIESと一緒にリンク PROJECTSのIDを取得 ASSIGNED_CATPROJECT_IDCATEGORY_ID

:2列を持つ

  • ASSIGNED_CAT


    ここでは、プロジェクトを含むCATEGORIESを取得する必要があります。表示しない場合は、表示しないでください。

    例:
    CATEGORY 1は表示されませんされていない場合、プロジェクトは、カテゴリ名を表示している場合。

    これをお試しください。私は成功せずに多くのSQL JOINを試しました。 ありがとう!

答えて

1

EXISTS句がありません。

次のクエリは、少なくとも1つの行が交差テーブルに存在するすべてのカテゴリを選択します。

SELECT category_name 
FROM categories c 
WHERE EXISTS (
    SELECT 1 
    FROM assigned_cat ac 
    WHERE ac.category_id = c.category_id 
) 
+0

「SELECT 1」は何をしますか?私の知識を求める... –

+0

@ FahimParkar:定数値が1の列を1つ選択します。 'EXISTS'節を使うときは行数だけが関係しますので、' SELECT * 'や' SELECT ac.category_id'でも構いません。 –

+0

情報を共有してくれてありがとう... :) –

関連する問題