我有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 1
和Extra Field 2
是多余字段的正确名称,列也已移动。
有没有办法仍然使用*
或其他快捷方式,以避免在查询中写入796列的名称?
我可以以编程方式构建查询字符串,但是如果只有SQL方式呢?
我有2个MYSQL表,一个有794个字段,另一个有796个字段,普通的794个字段相同。是的,是真实的数字,是将数据从旧系统导入到新系统。如果我这样做:SELECT foo FROM(SELECT ...
除非显式地写入列名,否则不能将UNION用于不同数量的列。