首页 > 解决方案 > 如何在sql中查询关系

问题描述

我是 SQL 新手,遇到了一个似乎无法解决的练习。

这里我们有数据库的模式

我如何获得与他们工作的餐厅住在同一城市的所有员工的姓名?

我尝试使用连接查询,但由于 Restaurant 没有代表员工的外键,我想我必须通过 Works 关系。我应该如何进行?

标签: sqldatabasedatabase-designdatabase-schema

解决方案


您将需要多个连接。将其视为桥接或中间连接

由于您的员工餐桌和餐厅餐桌之间没有直接联系,因此您需要找到一种方法。在您的示例中,方法是通过具有 EmployeeSSN 和 RestaurantID 的 Work 表

它应该给你这样的东西:

Select E.EmployeeSSN, R.RestaurantId
FROM Employee E
INNER JOIN WORKS W
ON E.EmployeeSSN = W.EmployeeSSN
INNER JOIN Restaurant R
ON W.RestaurantID = R.RestaurantID
WHERE E.city = R.city

推荐阅读