gpt4 book ai didi

mysql - SQL,根据引用它们的第三个表从两个表中选择

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

刚从 SQL 开始,第一个通宵达旦的人就在这里。

我有三个表:

student (student_id, first_name, last_name)
course (course_id, name)
exam (ref_to_student_id, ref_to_course_id, score)

对于考试成绩 > X 的所有情况,我如何制作选择语句并列出学生姓名、姓氏和类(class)名称?

这是我最好的一张照片:

SELECT last_name FROM student WHERE student_id IN 
(SELECT ref_to_student_id FROM exam WHERE score > 50)
UNION ALL
SELECT name FROM course WHERE course_id IN
(SELECT ref_to_course_id FROM exam WHERE score > 50)

这是错误的,因为我得到:

last_name
last_name
name
name
name

并且无法准确判断哪个学生在哪门考试/类(class)中得分高于 X。

在我看来,是这样的:

SELECT first_name, last_name, name
FROM student, course
WHERE student_id, course_id
IN (SELECT ref_to_student_id, ref_to_course_id FROM exam WHERE score > 50)

会产生这样的东西:

John Doe Chemistry
Jane Dove English
...

但是,它只会生成有关语法错误的通知。

最佳答案

您可以像这样在表之间使用内部联接:

SELECT s.first_name AS first_name, s.last_name AS last_name, c.name AS course_name
FROM student s
INNER JOIN exam e ON e.ref_to_student_id = s.student_id
INNER JOIN course ON c.course_id = e.ref_to_course_id
WHERE e.score > 50;

关于mysql - SQL,根据引用它们的第三个表从两个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47370466/

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