【发布时间】:2013-10-02 20:07:08
【问题描述】:
我有三个 MySQL 表:'people'、'people2id'、'places'。第一个存储有关人员的信息,其中“地点”表存储有关其地址的信息。中间的“people2id”将这两个表相互连接(可能是一个人有两个或多个地址)。
现在我想转到某个人的个人资料并查看他的个人资料,以及他的关联地址。我为此创建了这个查询:
SELECT * FROM people p
JOIN people2id e ON p.peopleId = e.peopleId
JOIN places a ON a.peopleId = e.peopleId
WHERE p.peopleId = number
当这个人有关联的地址时,这有效,否则,它将失败。我不明白我是否应该使用任何类型的 JOIN 或 UNION 来解决这个问题。
【问题讨论】:
-
是否有任何具体原因要创建额外的表
people2id只是为了关联您可以直接将人们与每个地方应该有 people_id 的地方关联起来
标签: mysql sql database-design join union