【发布时间】:2012-11-02 13:11:33
【问题描述】:
我有三张桌子。员工、项目(多对多)和员工项目。
我想检索每个员工的姓名和他们各自的项目。
我试图使用这个查询:
SELECT Employee.name, Project.name
FROM Employee, Project
INNER JOIN EmployeeProject ON Employee.empNo = EmployeeProject.empNo
INNER JOIN EmployeeProject ON Project.projectNo = EmployeeProject.projectNo;
Access 给了我一个语法错误。然后我尝试了这个查询并且它有效:
SELECT Employee.name, Project.name
FROM Employee, Project, EmployeeProject
WHERE Employee.empNo = EmployeeProject.empNo AND EmployeeProject.projectNo = Project.projectNo;
我的问题是;可以使用 WHERE 链接表还是有更好的方法,比如 INNER...
问候
【问题讨论】:
-
如果您使用 MS ACCESS,您必须将“(”和“)”放入您的 INNER JOIN。它要求这样做。在员工和项目中也使用内部联接。
-
如果您有兴趣:之前已经询问过INNER JOIN vs WHERE 的一般比较。
-
不是根据this documentation 显示的未包含
()的连接示例。 -
好的。只是根据我之前在谷歌上搜索该语法的经验来说明。
-
涉及多个 JOIN 时需要它,因为 Access 不想猜测解析顺序。
标签: sql database ms-access inner-join where