gpt4 book ai didi

mysql - 如何使用 SQL SELECT 在单个报告中获取选择器和选择器的名称?

转载 作者:行者123 更新时间:2023-11-29 04:52:51 24 4
gpt4 key购买 nike

我想列一个学生名单,选择其他学生作为室友。因此,它们可以分为选择器和选择器。换句话说,这是一个多对多关系的两个表,当一个表被引用两次时,如何连接的问题。

首先,我制作了一张包含所有学生的表格,创造性地称为“学生”...

然后我制作了一张表,其中包含两组外键,引用学生列表的 ID 来表示选择者和选择者。我将其称为“选择”,并将这种关系设为多对多。

我最终得到了两个表:

  • 学生:字段:id、名字、姓氏、年龄、性别、类(class)
  • 选择:字段:id、chooser_fk、choice_fk、choice_priority

但是,当我尝试使用 SELECT 报告选择器和选择器的名称时,我遇到了问题。

我似乎不能再进一步了:

SELECT Pupils.firstname, Pupils.lastname, Choices.choice
FROM Pupils
INNER JOIN Choices
ON Pupils.id=Choices.chooser
WHERE Pupils.sex = 'M';

...但这只会获取选择器的名称,以及所选择的 ID。我试图搜索,但我发现的东西要么无关紧要,要么太高级以至于我无法正确理解。仍在努力学习。

我想在报告中将选择器和选择器的名称并排显示。我该怎么做?

最佳答案

您需要一个 Pupils 的引用作为选择器,另一个 Pupils 的引用作为选择/选择:

SELECT 
p1.firstname, p1.lastname, --chooser
p2.firstname, p2.lastname --choice/chosen
FROM Pupils p1
INNER JOIN Choices
ON p1.id=Choices.chooser
INNER JOIN Pupils p2
ON p2.id=Choices.choice
WHERE p1.sex = 'M'; --or whatever clause makes sense to you
--the important concept here is referencing Pupils twice

关于mysql - 如何使用 SQL SELECT 在单个报告中获取选择器和选择器的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9728804/

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