SELECT s.name, c.name
FROM students s
FULL JOIN enrollments e ON s.id = e.student_id
FULL JOIN courses c ON e.course_id = c.id;
这是我的语句,但它抛出错误代码1064:您的sql语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解第 3 行附近使用的正确语法。 我使用的MySQL版本是8.0。 请帮助我被困住了。
我尝试研究正确的语法,但无济于事,这似乎是正确的语法。 尝试将第 3 行的分号作为 EOF。
我认为你只是在像下面这样的SQL课程中举例。
SELECT
first_name,
last_name,
certificate_name,
edition,
grade
FROM student s
FULL JOIN certificate_enrollment cen
ON s.id = cen.student_id
FULL JOIN certificate_edition ced
ON cen.edition_id = ced.id
FULL JOIN certificate c
ON ced.certificate_id = c.id;
事实上,MySQL 没有完整的连接语法。您应该使用 Inner Join 或 Outer Joins,例如
LEFT JOIN
或 RIGHT JOIN
。您也可以通过执行 UNION
来模拟它。