Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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
Sql 如何将两个表的两列插入另一个表的一列_Sql_Join - Fatal编程技术网

Sql 如何将两个表的两列插入另一个表的一列

Sql 如何将两个表的两列插入另一个表的一列,sql,join,Sql,Join,嗨,我在加入3张桌子时遇到问题 table1(id1,name_1) Table2(id2,top,name_2,fk_id1) table3(id3,top,name_3,fk_id1) 因此,我想: tableResult(id1,name_1,top,name_2,name_3) ps:top包含来自表2.top和表3.top的数据。我假设您的结果需要如下所示: 1. ID1, Name1, Top (from table 2), Name2, Name3 2. ID1, Name

嗨,我在加入3张桌子时遇到问题

table1(id1,name_1)

Table2(id2,top,name_2,fk_id1)

table3(id3,top,name_3,fk_id1)
因此,我想:

tableResult(id1,name_1,top,name_2,name_3)

ps:
top
包含来自
表2.top
表3.top
的数据。我假设您的结果需要如下所示:

1. ID1, Name1, Top (from table 2), Name2, Name3
2. ID1, Name1, Top (from table 3), Name2, Name3
例如:

我认为您需要使用
联合ALL
操作符

SELECT A.ID_1, A.Name_1, B.Top, B.Name_2, C.Name_3
FROM Table1 AS A
LEFT OUTER JOIN Table2 AS B
ON A.Id_1 = B.Id_1
     LEFT OUTER JOIN Table3 AS C
     ON A.ID_1 = C.ID_1
UNION ALL
SELECT A.ID_1, A.Name_1, C.Top, B.Name_2, C.Name_3 --Notice that this grabs Top from Table 3
FROM Table1 AS A
LEFT OUTER JOIN Table2 AS B
ON A.Id_1 = B.Id_1
     LEFT OUTER JOIN Table3 AS C
     ON A.ID_1 = C.ID_1

我不确定您的规则,因此您可能需要使用不同于左外部联接的联接。

如果您只想联接,下面的查询应该可以

SELECT *
FROM table1 a
JOIN table2 b ON b.fk_id1 = a.id1
JOIN table3 c ON c.fk_id1 = a.id1

请澄清-你到底有什么问题?您想要的输出可以是直接连接到表2和表3的结果,但是您需要如何处理这些表的
top
列呢?该列的数据类型是什么?应以何种方式组合这些数据?你能提供一个例子吗?@AndyKorneyev我希望输出是连接表1、表2和表3的结果,top是两个表中的两个不同列,我希望在输出中放入一列table@Hchliyah当前位置不,我们谈论的是顶级字段。假设您在表2中有一条top=2的记录,在表3中有一条top=3的记录,那么您的结果行应该包含什么;top=2或top=3或top=23或top=5或其他什么?告诉我们将什么放入顶部结果字段的规则。@ThorstenKettner top将有两行,分别为2行和2行3@Hchliyah目前还不清楚最终结果应该是什么。举个例子怎么样?
SELECT *
FROM table1 a
JOIN table2 b ON b.fk_id1 = a.id1
JOIN table3 c ON c.fk_id1 = a.id1