2012-09-28 43 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