0

我只能使用自然连接,它在 sql server 中不起作用,我必须从员工表中选择 EmpName、EmpDOB 和 EMPDOB,从部门表中选择 DEPTID。请帮助

SELECT     DEPARTMENT.DEPTID, EMPLOYEE.EmpID, EMPLOYEE.EMPName, EMPLOYEE.EMPDOB
FROM         DEPARTMENT NATURAL JOIN
                      EMPLOYEE ON DEPARTMENT.DEPTID = EMPLOYEE.DEPTID
4

3 回答 3

3

如果你必须使用 aNATURAL JOIN那么试试这个:

SELECT D.DEPTID, E.EmpID, E.EMPName, E.EMPDOB
FROM DEPARTMENT D NATURAL JOIN EMPLOYEE E

只要DEPTID两个表上的列名相同。 NATURAL JOIN不需要指定加入哪些字段,它自己计算出来。

这是一个很好的参考NATURAL JOINhttp ://www.w3resource.com/sql/joins/natural-join.php

Natural Join 在 SQL-Server 中不起作用,仅在 MySQL 中起作用。

于 2013-06-19T18:33:39.227 回答
3

SQL-Server 尚未实现NATURAL JOIN.

如果您想尝试使用它,请尝试使用 Oracle、Postgres 或 MySQL。如果不允许安装它们,您也可以使用SQLfiddle.com 。

于 2013-06-19T19:00:49.667 回答
0

当您使用“=”符号时,它只是一个普通的等值连接(显式),而自然连接则由查询引擎计算出谓词(隐式)。http://en.wikipedia.org/wiki/Join_(SQL)#Natural_join

于 2013-06-19T18:40:13.463 回答