mysql - UNION 2表很多字段,很少有不同,可能使用SELECT *?
问题描述
我有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 的方式?
解决方案
如果不明确写入列名,则不能将 UNION 与不同数量的列一起使用。
因此,如果您想避免写入列名,那么您可以在 bar1 中添加两个额外的字段,然后执行您的 UNION 查询。
推荐阅读
- javascript - 格式数字在 ag 网格 5210.15 到 5,210.15
- svg - 如何在 SVG 中跟踪开放路径的一个边缘
- javascript - chartjs-plugin-zoom 在离线环境 javascript .js 上不起作用
- google-apps-script - 如何测试 Gsuite 用户是否允许使用插件,或者是否是超级管理员
- javascript - 如何使我的下拉选择通过它们的值更改我的总数,但除非选择,否则不会计算
- python - 如何从 json 文件中获取表模式:parse_table_schema_from_json?
- windows - Nservicebus 托管为服务,启动后立即关闭
- reactjs - Laravel Mix 4.0.7 包含 Vue
- python - 迭代 pd 数据帧以将整数更改为字符串
- c# - 使用C#调用AS400程序并从QTEMP中选择文件