我有两个表:

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)
....

非常感谢!

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

最佳答案

您可以使用 natural join :


SELECT * FROM T1 NATURAL JOIN T2;

请结帐 this demo

但是请注意, NATURAL JOIN 是危险的,因此强烈建议不要使用它们。危险来自无意中添加了一个新列,该列的名称与另一个表中的另一列相同。

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

10-16 21:33