2012-09-28 45 views
0

我有一張表格,其中描述了建築物的狀況。其中一些句子屬於「完整」類別,一些屬於「準備」類別。我也有兩個表格(完整的,準備的),其中包括建築物ID和句子ID。所以每個建築物都由兩張表格來描述(完整,準備)。我想創建一個查詢,其結果將有兩列 - >建築物的描述。將數據從兩個表格分成兩列

-----------  -----------------------  ---------------------- 
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 - 子查詢返回多個1行

方案

我試圖做一個圖,但不幸的是我做的沒有足夠的聲望點上傳,所以它隱藏在這裏:。

Scheme

回答

0

這是真的,因爲你正在使用左連接你會得到多行,在完成你有2項ID的值爲1和左連接給你所有來自行完成與價值1.什麼是實際上你想要的查詢,我還沒有完全理解你的查詢是什麼意思你想要的輸出。 (還有什麼是外鍵在)

+0

你好,外鍵ID_HOUSE和ID_SENTENCES。 ID_SENTENCES來自SENTENCES表,ID_HOUSE來自表HOUSES(這裏沒有給出。)我想列出包含「Sentences」數據的兩列。這些數據適用於「完成」和「準備」表中指定的單個建築物。 – Radicz

+0

你的命名約定是有點混亂對我來說,是s.id_house是一樣s.id,你可以列出其列,因爲在句子互相關聯,你有哪些ID號? ID_house或ID_sentences和你的房屋表你在哪裏使用它。 – scc

+0

你好,我添加了一個簡單的方案,抱歉的混淆描述。 – Radicz