0

建物の状態を説明する文章の表があります。これらの文には、「完了」のカテゴリに属する​​ものと、「準備中」のカテゴリに属する​​ものがあります。また、建物 ID と文 ID を含む 2 つのテーブル (完了、準備中) があります。そのため、各建物は 2 つのテーブル (完了、準備中) で表されます。結果が2つの列を持つクエリを作成したいと思います->建物の説明。

-----------       -----------------------     ----------------------
 SENTENCES              COMPLETE                     PREPARING
-----------       -----------------------     ----------------------
ID  |  text       ID_HOUSE  | ID_SENTENCES     ID_HOUSE | ID_SENTENCES
-----------       ------------------------    ------------------------                
1   |  One            1     |       1               1   |       3
2   |  Two            1     |       2               2   |       1
3   |  Tree           2     |       2  

このようなものが欲しいです:(家1の場合)

COMPLETE     |      PREPARING
------------------------------
   One       |         Tree
   Two       |         NULL

これを作成しましたが、機能しません。

SELECT s.text AS complete, 
(
  SELECT s.text
  FROM sentences AS s
  LEFT JOIN preparing AS p ON s.id = p.id_sentences
  WHERE s.id_house = 1
) AS preparing
FROM sentences AS s
LEFT JOIN complete AS c ON s.id = c.sentences
WHERE s.id_house = 1

これは私が得るものです

1242 - サブクエリが複数の行を返す

図式

ダイアグラムを作成しようとしましたが、残念ながらアップロードするのに十分な評価ポイントがないため、ここに非表示にしています: .

図式

4

1 に答える 1

0

これは、左結合を使用しているため、複数の行を取得することは事実です。Complete では、値 1 の 2 つの ID があり、Left Join では、値 1 の Complete からのすべての行が得られます。実際に必要なクエリは何ですか。あなたのクエリが何を意味するのかよくわかりません。(また、その中の外部キーは何ですか)

于 2012-09-28T17:56:09.340 に答える