Oracle中使用USING连接列名不同的表的方法咨询
Oracle USING子句连接问题解决
你的问题出在USING子句的核心规则上:USING仅支持两个表中字段名完全一致的关联字段,而你的EMPLEADOS表关联字段是codigo,TRABAJAN表对应字段是cod_emp,字段名不匹配,所以无法直接用USING实现连接。
你当前的SQL写法错误,因为USING括号内的字段必须是两个表共有的同名字段,而CODIGO和COD_EMP分别属于不同表,不符合USING的使用条件。
正确的写法应该使用ON子句:
SELECT NOMBRE, FUNCION FROM EMPLEADOS JOIN TRABAJAN ON EMPLEADOS.codigo = TRABAJAN.cod_emp;
如果非要用USING,只能先给字段统一别名再关联,但这种写法冗余且没必要:
SELECT NOMBRE, FUNCION FROM (SELECT codigo AS cod_emp, NOMBRE FROM EMPLEADOS) e JOIN TRABAJAN USING (cod_emp);
你提供的Oracle文档示例中,COUNTRIES和CITIES表同时拥有COUNTRY和COUNTRY_ISO_CODE这两个同名字段,所以能直接用USING关联,这和你的字段名不同的场景完全不一样。
内容的提问来源于stack exchange,提问作者Rayman
相关产品推荐
相关产品推荐

