Mysql 连接具有不同名称的表
正如你在下面看到的,我正试图将两张表合并起来。这两个表显示的数据彼此稍有不同,但差异不会太大,我们无法将它们连接起来 为完整起见,我们将按颜色名称对表格进行命名: 红色表格将是红色的 蓝色表格将为Mysql 连接具有不同名称的表,mysql,sql,Mysql,Sql,正如你在下面看到的,我正试图将两张表合并起来。这两个表显示的数据彼此稍有不同,但差异不会太大,我们无法将它们连接起来 为完整起见,我们将按颜色名称对表格进行命名: 红色表格将是红色的 蓝色表格将为蓝色 从两个表中,我们将组合IDs 从红色表格中,我们将名称与蓝色表格的标题 从红色表格中,我们将产品与蓝色表格的项目 从红色表中,我们将添加成本 我想知道我们是否可以连接这两个表并使用SQL输出结果。换句话说,我不想创建一个全新的表,我只想使用一个查询来输出两个表的组合 当我尝试这样做时,我得到了如
蓝色
从两个表中,我们将组合
ID
s从
红色
表格中,我们将名称
与蓝色
表格的标题
从
红色
表格中,我们将产品
与蓝色
表格的项目
从
红色
表中,我们将添加成本
我想知道我们是否可以连接这两个表并使用SQL输出结果。换句话说,我不想创建一个全新的表,我只想使用一个查询来输出两个表的组合
当我尝试这样做时,我得到了如下结果:
ID Name Prod Cost ID Title Item
0 asdf item1 4.00 1 fdsa item2
2 sdfg item3 5.00 3 gfds item4
4 dfgh item5 4.00 5 hgfd item6
但是我想得到这个:
ID Name Item Cost
0 asdf item1 4.00
1 fdsa item2
2 sdfg item3 5.00
3 gfds item4
4 dfgh item5 4.00
5 hgfd item6
可以使用,以便组合多个select查询的结果。由于没有重复的机会,在这些多个select查询之间,我们可以使用Union All
。我们需要确保两个select查询返回的列数相同。最终,我们可以使用排序方式对组合结果进行排序,排序方式为ID
:
(SELECT ID,
Name,
Prod AS Item,
Cost
FROM red_table)
UNION ALL
(SELECT ID,
Title AS Name,
Item,
'' AS Cost
FROM blue_table)
ORDER BY ID ASC
可以使用,以便组合多个select查询的结果。由于没有重复的机会,在这些多个select查询之间,我们可以使用Union All
。我们需要确保两个select查询返回的列数相同。最终,我们可以使用排序方式对组合结果进行排序,排序方式为ID
:
(SELECT ID,
Name,
Prod AS Item,
Cost
FROM red_table)
UNION ALL
(SELECT ID,
Title AS Name,
Item,
'' AS Cost
FROM blue_table)
ORDER BY ID ASC
使用应使用并集运算符
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
规则:
UNION中的每个SELECT语句必须具有相同的列数。这些列还必须具有相似的数据类型。每个SELECT语句中的列的顺序也必须相同Use PROJECT Use UNION运算符
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
select id, name, prod as item,cost from red_tbl UNION ALL select id, title as name, item, NULL as cost from blue_tbl
规则:
UNION中的每个SELECT语句必须具有相同的列数。这些列还必须具有相似的数据类型。每个SELECT语句中的列的顺序也必须相同
select id, name, prod as item,cost from red_tbl UNION ALL select id, title as name, item, NULL as cost from blue_tbl
将选择“产品”时的字段名更改为红色表格中的“项目”,将选择“标题”时的字段名更改为蓝色表格中的“名称”。选择表中不可用的空字段(此处为蓝色表中的成本字段),因为所选字段的联合编号必须具有相同的编号
将选择“产品”时的字段名更改为红色表格中的“项目”,将选择“标题”时的字段名更改为蓝色表格中的“名称”。选择表中不可用的空字段(此处为蓝色表中的成本字段),因为所选字段的联合编号必须具有相同的编号。您希望得到什么样的预期结果?第一个还是第二个结果?你想要第一个,而不是第二个,或者你得到了第一个,但是你想要第二个?你想要什么样的预期结果?第一个还是第二个结果?你想要第一个,而不是第二个,或者你得到了第一个,但是你想要第二个?