连接具有不同名称的表

时间:2018-10-22 04:13:06

标签: mysql sql

正如您在下面看到的,我正在尝试合并两个表。这两个表显示的数据略有不同,但差别不大,我们无法将它们连接在一起。

为了完整起见,我们将使用其颜色名称来调用表格:

红色表格将为red
蓝表将为blue

在这两个表中,我们将合并ID s
red表中,我们将Nameblue表的Title
合并 在red表中,我们将Prodblue表的Item
合并 在red表中,我们将添加Cost

我想知道我们是否可以联接这两个表并使用SQL输出结果。换句话说,我不想创建一个全新的表,我只想使用一个查询来输出两个表的组合。

enter image description here

当我尝试这样做时,我得到的是这样的东西:

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

3 个答案:

答案 0 :(得分:3)

select id, name, prod as item,cost from red_tbl UNION ALL select id, title as name, item, NULL as cost  from blue_tbl

在红色表中将“ prod”的字段名称更改为“ item”,在蓝色表中将“ title”的名称更改为“ name”。选择表中不可用的空字段(此处为蓝色表中的成本字段),因为在选中字段的联合编号中必须具有相同的编号。

答案 1 :(得分:2)

您可以使用UNION来组合多个选择查询的结果。由于没有重复的机会,因此在这多个选择查询之间,我们可以使用... @CrossOriginResourceSharing( allowAllOrigins = true, allowCredentials = true, maxAge = 1209600 ) public interface GateRs { ... 。我们需要确保两个选择查询都返回相同数量的列。最终,我们可以使用Union All通过ID对组合结果进行排序:

ORDER BY

答案 2 :(得分:0)

使用时应使用UNION运算符

SELECT column_name(s) FROM table1 
UNION 
SELECT column_name(s) FROM table2;

规则:

UNION中的每个SELECT语句必须具有相同的列数。这些列还必须具有相似的数据类型。每个SELECT语句中的列也必须具有相同的顺序