我是SQL的新手,我很难搞清楚如何在MySQL Workbench上使用外键执行查询。
在我的示例中,我有三个表:people
,places
和people_places
。
people
中,主键为people_id
,并且有一个名为name
的列,其中包含某人的姓名。places
中,主键为places_id
,并且有一个名为placename
的列,其中包含一个地点的名称。People_places
是一个包含三列的联结表:idpeople_places
(主键),people_id
(外键)和places_id
(外键)。因此,该表将人与使用其他两个表中的数字ID的地点联系起来。说我想要与地点#3相关联的每个人的名字。所以people_places表按编号有这些关联,人员表将这些数字与我想要的实际名称联系起来。
我该如何执行该查询?
答案 0 :(得分:2)
尝试此选项可查找与地点ID 3相关联的所有人名。
SELECT p.name
FROM people as p
INNER JOIN people_places as pp on pp.people_id = p.people_id
WHERE pp.places_id = 3
答案 1 :(得分:0)
好的,所以你需要将所有三张桌子“拼接”起来,是吗?
这样的事情:
select people.name
from people -- 1. I like to start with the table(s) that I want data from, and
, people_places -- 2. then the "joining" table(s), and
, places -- 3. finally the table(s) used "just" for filtering.
where people.people_id = people_places.people_id -- join table 1 to table 2
and people_places.place_id = places.place_id -- join table 2 to table 3
and places.name = "BERMUDA" -- restrict rows in table 3
我相信你可以做其余的事。
干杯。基思。