Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将两个表中的数据分为两列_Mysql_Join_Subquery - Fatal编程技术网

Mysql 将两个表中的数据分为两列

Mysql 将两个表中的数据分为两列,mysql,join,subquery,Mysql,Join,Subquery,我有一张桌子,上面有描述大楼状况的句子。这些句子中有些属于“完成”类,有些属于“准备”类。我还有两个表(complete,preparing),其中包括建筑物ID和句子ID。因此每个建筑物由两个表(complete,preparing)描述。我想创建一个查询,其结果将有两列->建筑物描述 ----------- ----------------------- ---------------------- SENTENCES COMPLETE

我有一张桌子,上面有描述大楼状况的句子。这些句子中有些属于“完成”类,有些属于“准备”类。我还有两个表(complete,preparing),其中包括建筑物ID和句子ID。因此每个建筑物由两个表(complete,preparing)描述。我想创建一个查询,其结果将有两列->建筑物描述

-----------       -----------------------     ----------------------
 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  
我想要这样的东西:(第一栋)

我创建了这个,但它不起作用

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行 方案

我试图制作一个图表,但不幸的是我没有足够的信誉点上传,所以它隐藏在这里:


没错,由于使用左联接,您将获得多行,在Complete中,您有两个值为1的ID,而left join为您提供了Complete中值为1的所有行。您实际需要的查询是什么,我还不太明白您的查询是指您想要的输出。(还有那里面的外键是什么)

你好,外键是ID\u HOUSE和ID\u句子。ID_句子来自表句子,ID_房子来自表房子(这里没有给出)。我想列出包含“句子”数据的两列。这些数据是针对表COMPLETE and PREPARING中指定的单个建筑的。您的命名约定让我有点困惑,s.id_house是否与s.id相同,您能否列出哪些列相互关联,因为在句子中您有id哪个id?ID_house或ID_句子和你的房子表你在哪里使用它。你好,我添加了一个简单的方案,很抱歉描述混乱。
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