在MySQL中使用表两次
这是如此基本,我不知道为什么这不起作用。 错误是: #1066-非唯一表/别名:“课程”在MySQL中使用表两次,mysql,sql,Mysql,Sql,这是如此基本,我不知道为什么这不起作用。 错误是: #1066-非唯一表/别名:“课程” 我遗漏了一些明显的东西。您的语法应该如下所示 SELECT c.title, p.title FROM course c INNER JOIN prereq p ON c.course_id = p.prereq_id 如果您希望在没有ID匹配的情况下重新计算行,请使用LEFT JOIN SELECT c.title, p.title FROM course c LEFT JOIN p
我遗漏了一些明显的东西。您的语法应该如下所示
SELECT c.title, p.title
FROM course c
INNER JOIN prereq p ON c.course_id = p.prereq_id
如果您希望在没有ID匹配的情况下重新计算行,请使用LEFT JOIN
SELECT c.title, p.title
FROM course c
LEFT JOIN prereq p ON c.course_id = p.prereq_id
您的错误如下:
from course NATURAL JOIN prereq c, course NATURAL JOIN prereq p
^^^^^^^^
您在加入列表中指定了两次课程
。我建议放弃自然连接
,并明确指定连接
标准
from course c1
inner join prereq c
on c1.?? = c.??
inner join prereq p
on c1.?? = p.??
为什么需要两次加入prereq表?一个课程在一行中是否有多个预要求?尝试以下方法:
select c.title, p.title
from course c NATURAL JOIN prereq p
where c.course_id = p.prereq_id;
prereq有一个课程id和一个prereq的课程id,我试图找到一种方法来显示每个课程和它的prereq(如果有的话)。如果不是课程名称所在的位置,我根本不需要课程表courses@Sean啊。所以可能有未知数量的预需求?ie课程有一个预请求,该预请求有一个预请求,然后继续?
select c.title, p.title
from course c NATURAL JOIN prereq p
where c.course_id = p.prereq_id;