gpt4 book ai didi

mysql - 建立 N-M 关系的问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:59 29 4
gpt4 key购买 nike

使用 MySQL 我试图使用已经上传到数据库中的数据建立一对多关系。举个例子,假设我在一个表中有一个名字列表,我想将它们连接到一个他们去过的地方的列表。显然 1 个人可以去很多不同的地方,但我在设置时遇到了问题。

        -----Name-----------ID---------
John Smith 1
Joe Random 2
Seth Guy 3
------------------------------

我有另一个看起来像这样的表:

        -------city---------ID---------
New York 1
Chicago 2
Orlando 3
LA 4
-------------------------------

我正在寻找这样的东西:

        --------Name--------City----------
John Smith Chicago
John Smith Orlando
John Smith New York
Seth Guy Chicago
Joe Random LA
------------------------------------

我显然知道 John Smith 去过所有 3 个地点,因为我上传的原始文件告诉我如此,但我希望数据库建立连接并相应地放置他。

最佳答案

如评论中所述,这是 N-M 关系,而不是 1-N 关系。您需要一个额外的“映射”表来记录访问:

CREATE TABLE visits (
person_id INT,
city_id INT,
CONSTRAINT visits_pk PRIMARY KEY (person_id, city_id)
);

然后,您可以通过几个连接查询所有访问:

SELECT person.name, city.name
FROM person
JOIN visits ON person.id = visits.person_id
JOIN city ON visits.city_id = city.id

关于mysql - 建立 N-M 关系的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613257/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com