我有很多表都是相似的(例如" table1"" table2"" table3"等等)我需要在所有表中使用它们一个问题。它们都包含相同的两个变量(" ID"和" date"),它们被加入。
至少有25个此类表格,我对数据库具有只读权限,因此我无法将它们组合在一起,甚至可以创建一个可以执行此操作的视图。
我的问题是:是否有一个简单的快捷方式可用于加入所有这些表格?如果是SAS,我会创建一个宏,但我使用的是Microsoft SQL Server Management Studio 2012。
而不是必须这样做:
select *
from table1 a
join table2 b on a.id=b.id and a.date=b.date
join table3 c on b.id=c.id and b.date=c.date
join ....
join ....
join table25 y on x.id=y.id and x.date=y.date
我想做类似的事情:
select *
from merge(table1 - table25) using(id, date)
更换"合并"以上声明适用的任何内容。这样的事情有可能吗?
答案 0 :(得分:-1)
正如评论中所指出的,您所寻找的简洁语法并不存在。
缩短SQL的唯一方法是利用加入列全部命名相同的事实,这将涉及使用using
关键字:
select *
from table1 a
join table2 b using (id, date)
join table3 c using (id, date)
join ....
join ....
join table25 y using (id, date)
但遗憾的是,即使这对您不利,因为SQL Server中无法识别using
关键字。它确实可以在其他流行的数据库中使用。