2012-02-02 15 views
0

での作業ではない加わります。私が左結合をしたら、b.b_idが未知の列であるというエラーが出ます。なぜここで左結合を使用できないのですか?具体的には、テーブルbの列が不明なのはなぜですか?ステートメントの最初の部分はテーブルbからの通常の選択です。なぜそれらの列を見つけることができないのですか?左は、私は、このSQLを記述しようとしていますサブクエリ

サブクエリとインナー結合はいつ使用しますか?この例では:

  • 表Aは、情報
  • トピックについて表cは
  • など、話題のタイトルのようなものが含まれているテーブルBで固定長フラグ(整数の束)を含むカテゴリ情報が含まれています。

私が達成しようとしているのは、特定のタイプ(テーブルa)のすべてのカテゴリを引き出し、カテゴリIDが定義されているものと同じであるすべてのトピックタイトル(テーブルc)を引き出すことです。トピックID(表b)。

答えて

1

を試してみてください "" と "B" のSQLコンパイル(しかし、これはあなたが求める結果が得られていますか?):それをやった

SELECT 
    a.a_id as aid, 
    b.b_id as bid, 
    c.title 
FROM 
    (SELECT 
     a.a_id 
    FROM a 
    WHERE a.type = '2' 
    ) AS a, b 
LEFT JOIN c ON b.b_id = c.c_id 
+0

感謝を! – phpmeh

+0

ようこそ。盲目のリスであっても、しばらくしてナッツを見つけます。 –

1

あなたがテーブルを交換した場合、この

SELECT 
    a.a_id as aid, 
    b.b_id as bid , 
    c.title 
FROM b INNER JOIN 
    (SELECT 
     a.a_id 
    FROM a 
    WHERE a.type = '2' 
    ) AS a 
LEFT JOIN c ON b.b_id = c.c_id 
関連する問題