使用所有相同的列标题加入2个表但只有一个不同

时间:2015-04-29 16:04:05

标签: mysql sql sql-server join

如何连接2个具有所有相同列标题但只有一个?

的表

其他3列都是相同的,然后一个表有列标题" 1月"另一个表格有列标题"二月"

所以我想在新表中总共有5列

即使存在重复数据,我也希望其中包含所有数据。在我使用工会之前,我现在不能这样做,因为并非我的所有标题都是相同的。

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用UNION并重命名其中一列:

SELECT id, name, age, xxx FROM table1
UNION
SELECT id, name, age, yyy AS xxx FROM table2

如果您添加更多信息,我可以详细说明我的答案

答案 1 :(得分:0)

假设只考虑三列的唯一性,加入它们

SELECT tab1.col1, 
       tab1.col2, 
       tab1.col3, 
       tab1.january, 
       tab2.february 
FROM   tab1, 
       tab2 
WHERE  tab1.col1 = tab2.col1 
       AND tab1.col2 = tab2.col2 
       AND tab1.col3 = tab2.col3 

答案 2 :(得分:0)

这假设tblA中的所有行在tblB中都具有相应的行,反之亦然:

SELECT * FROM tblA INNER JOIN tblB USING (col1, col2, col3);

如果不是这种情况,并且取决于数据(如果tbl1january可以有合法的空值,这将无法工作),您可以尝试类似(没有检查确定,可能需要用括号,亚选择等进行按摩...... ):

SELECT *
FROM tbl1 
LEFT JOIN tbl2 USING (col1, col2, col3)
UNION ALL
SELECT * FROM tbl2 LEFT JOIN tbl1 USING (col1, col2, col3)
HAVING tbl1.`january` IS NULL
;
相关问题