gpt4 book ai didi

mysql - 多对多关系查询

转载 作者:行者123 更新时间:2023-11-29 21:20:03 30 4
gpt4 key购买 nike

学生存储学生姓名列表, friend 存储学生之间的关系。

Create table Student (
id int NOT NULL AUTO_INCREMENT,
name varchar(35),
PRIMARY KEY (id)
);

insert into Student (name) values ('John');
insert into Student (name) values ('Kelly');
insert into Student (name) values ('Mary');

Create table Friend (
id_from int NOT NULL REFERENCES Student(id),
id_to int NOT NULL REFERENCES Student(id),
PRIMARY KEY (id_from, id_to)
);

insert into Friend (id_from,id_to) values (1, 3);
insert into Friend (id_from,id_to) values (1, 2);
insert into Friend (id_from,id_to) values (3, 2);

如何在 MySql 中查询“John”的所有好友?架构在这里。

http://sqlfiddle.com/#!9/aeacd/1

最佳答案

我已经创建了一个查询。一般来说,您可以使用关系表将表与其自身连接起来。查询的作用是将 StudentFriendStudent 连接起来,然后选择名称为 "John" 的条目在 Student.idFriend.id_from 之间的连接表中。

查询如下所示:

SELECT *
FROM Student as s1
INNER JOIN Friend as f1 on s1.id = f1.id_from
INNER JOIN Student as s2 on s2.id = f1.id_to
WHERE s1.name = "John";

您可以在这里尝试一下:

http://sqlfiddle.com/#!9/aeacd/15

关于mysql - 多对多关系查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760629/

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