gpt4 book ai didi

mysql - 链接 MySQL 表中的行

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

我有一个关于 MySQL 的问题。我有这个表结构:

ID      Name
------ ------------
1 Peter
2 John
3 Carl
4 William

我需要链接记录。IE。- 彼得与卡尔和威廉有关- 卡尔与约翰有关

我应该像这样创建一个新表吗:

ID1     ID2
------ ------------
1 3
1 4
3 2

或者我应该像这样扩展第一个表:

ID      Name          Links
------ ------------ ----------
1 Peter 3,4
2 John
3 Carl 2
4 William

在这两种情况下,如何进行返回的查询:

Name          LinkedName
------------ --------------
Peter Carl
Peter William

我考虑过使用 JOIN、UNION 和子查询,但我无法真正让它发挥作用。我真的希望有人能在这里帮助我。

谢谢。

最佳答案

因为它是 n:m 关系(“Peter 与 Carl 和 William 有关系”),您的第一个想法是正确的:一个包含两个 ID 的附加表。您可以在此处添加有关关系的更多信息。还添加外键和主键以防止重复条目。

CREATE TABLE rel (
from_id integer references person(id),
to_id integer references person(id),
primary key(from_id, to_id)
);

这样查询:

SELECT p1.name, p2.name AS linked_name
FROM person p1
JOIN rel r ON (r.from_id = p1.id)
JOIN person p2 ON (r.to_id = p2.id)
WHERE p1.name = 'Peter';

关于mysql - 链接 MySQL 表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7657083/

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