我有一张表格,上面写着描述建筑物状况的句子。这些句子中的一些属于“完整”类别,一些属于“准备”类别。我还有两个表(完整的,准备好的),包括建筑物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行
方案
我尝试制作图表,但遗憾的是我没有足够的信誉点来上传,所以它隐藏在这里:。
答案 0 :(得分:0)
这是正确的,因为你使用左连接,你将获得多行,在完成中你有2个ID值为1,左连接为你提供所有行的完整值和值1.实际上你想要的查询是什么,我还不太明白你的查询是什么意思你想要的输出。 (还有什么外键)