三个或更多表格使用公共密钥加入

时间:2014-10-21 18:37:35

标签: mysql sql sql-server oracle11g db2

这适用于任何RDBMS吗?

CREATE TABLE TBLA (MYKEY CHAR (10 ), FLDA CHAR (10 ));
CREATE TABLE TBLB (MYKEY CHAR (10 ), FLDB CHAR (10 ));                          
CREATE TABLE TBLC (MYKEY CHAR (10 ), FLDC CHAR (10 ));

查询:

select mykey, flda, fldb, fldc  
from tbla                       
  join tblb using (mykey)       
  join tblc using (mykey) 

也许有明确的连接顺序?

select mykey, flda, fldb, fldc  
from ((tbla                       
          join tblb using (mykey))
      join tblc using (mykey))

它似乎不适用于DB2 for IBM i 7.1 ...我得到一个SQL0203 - 名称MYKEY在第二个USING (MYKEY)

时不明确

我想知道其他DBMS。

SQL Fiddler显示它可以与Oracle 11gR2和MySQL 5.6.6 m9一起使用......但不是MS SQL Server 2012;它显然不支持JOIN USING语法 http://sqlfiddle.com/#!4/ad8c0

很高兴得到这些数据库的实际用户以及任何其他人的确认信息。特别是DB2 for LUW。

1 个答案:

答案 0 :(得分:0)

您应该为表使用别名。

select a.mykey, a.flda, b.fldb, c.fldc  
from tbla a                      
  join tblb b on a.mykey = b.mykey       
  join tblc c on b.mykey = c.mykey