mysql - SQL 所有列除外

标签 mysql sql hive

我有两个表:

Table1 has columns A, B, C, D, E, F, G

Table2 has columns G, H, I, J, K, L, M, N

我想在 G 列上连接这两个表。但是,为了避免重复的列(模糊的 G)。 我必须执行如下查询。

select 
 t1.*, 
 t2.H,
 t2.I,
 t2.J,
 t2.K,
 t2.L,
 t2.M,
 t2.N
from Table1 t1
inner join Table2 t2
on t1.G = t2.G

我已经使用 t1.* 来尝试避免输入 table1 中的每个列名,但是,我仍然必须输入所有列,除了连接的列 G,如果你有一个包含很多列的表,那将是一场彻底的灾难列...

有什么方便的方法吗

select 
 t1.*
 t2.*(except G)
....

非常感谢!

我知道我可以打印出所有列名,然后复制和粘贴,但是,即使我不必手动输入,查询仍然太长无法调试....

最佳答案

通常强烈建议在除用于测试的临时查询之外的任何地方使用SELECT * FROM

原因是表架构会发生变化,这可能会破坏假设存在特定列或表中列顺序的代码。

即使这会使您的查询变得很长,我还是建议您指定要在数据集中返回的每一列。

但是,要回答您的问题,没有办法在 SELECT 子句中指定之外的每一列..

关于mysql - SQL 所有列除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007618/

相关文章:

hadoop - 如何在hdfs中加密数据,然后创建配置单元或impala表进行查询?

mysql - Doctrine Schema 对象创建和封装

sql - 连接条件的案例陈述

mysqldump 不止一个表?

sql - 插入后 SQL 代码中的西里尔符号不正确

MySQL:Inner Join with Group By 正在创建一个临时表(进行表扫描)

hadoop - TERMINATED BY的行目前仅支持换行 '\n'

hadoop - 更新Hive表中的值

mysql - 在后端阻止连续的 SQL 请求

mysql - 生成截断儒略日的 MYSQL 公式是什么?