外键查询有问题

时间:2011-05-27 23:10:21

标签: mysql

我是SQL的新手,我很难搞清楚如何在MySQL Workbench上使用外键执行查询。

在我的示例中,我有三个表:peopleplacespeople_places

  • people中,主键为people_id,并且有一个名为name的列,其中包含某人的姓名。
  • places中,主键为places_id,并且有一个名为placename的列,其中包含一个地点的名称。
  • People_places是一个包含三列的联结表:idpeople_places(主键),people_id(外键)和places_id(外键)。因此,该表将人与使用其他两个表中的数字ID的地点联系起来。

说我想要与地点#3相关联的每个人的名字。所以people_places表按编号有这些关联,人员表将这些数字与我想要的实际名称联系起来。

我该如何执行该查询?

2 个答案:

答案 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

我相信你可以做其余的事。

干杯。基思。