Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中使用表两次_Mysql_Sql - Fatal编程技术网

在MySQL中使用表两次

在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

这是如此基本,我不知道为什么这不起作用。 错误是:

#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   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;