温馨提示:本文翻译自stackoverflow.com,查看原文请点击:mysql - UNION 2 tables lots fields, few different, possible use SELECT *?
mysql sql union

mysql - UNION 2表有很多字段,很少有不同,可以使用SELECT *?

发布于 2020-03-31 23:28:43

我有2个MYSQL表,一个有794个字段,另一个有796个字段,常见的794个字段相同。是的,是真实的数字,是将数据从旧系统导入到新系统。

如果我做:

SELECT foo 
FROM (SELECT * 
      FROM bar1 UNION 
      SELECT *, null as `Extra Field 1`, null as `Extra Field 2` 
      FROM bar2
     ) bar1_2 
WHERE key = "Value in bar2 only";

这给出的错误值foo

哪里 SELECT foo FROM bar2 WHERE key = "Value in bar2 only";

给出正确的值 foo

即各列已转移,即使Extra Field 1Extra Field 2有额外的字段的正确名称。

有没有一种方法可以继续使用*使用其他一些快捷方式,以避免在查询中写入796列的名称?

我可以以编程方式构建查询字符串,但是如果只有SQL方式呢?

查看更多

提问者
Will Croxford
被浏览
10
Naveen Arora 2020-01-31 19:39

如果不显式地写入列名,则无法将UNION用于不同数量的列。

因此,如果要避免写列名,则可以在bar1中添加两个额外的字段,然后执行UNION查询。