1

我的命令有效,当我再次尝试插入它时,我不断收到此错误:每个派生表都必须有自己的别名..

这是我的命令:

SELECT s1.* 
FROM subpages AS s1 
  INNER JOIN (
    SELECT s2.* 
    FROM subsubpages AS s2
  ) ON s1.subpage_id = s2.subpage_id 
WHERE s1.page_id = 18;

我对两个表都有不同的别名。知道为什么我仍然会收到此错误吗?

4

2 回答 2

2

您需要子查询的别名:

SELECT s1.*
FROM subpages s1 INNER JOIN
     (SELECT s2.*
      FROM subsubpages s2
     ) s2
-------^ this one here
     ON s1.subpage_id = s2.subpage_id
WHERE s1.page_id = 18;

注意:您的子查询完全没有必要。我会建议你删除它。

于 2019-10-03T10:54:33.753 回答
1

您可以在下面尝试 - 需要为您的子查询添加别名

SELECT s1.* FROM subpages AS s1 
INNER JOIN 
(SELECT s2.* FROM subsubpages )AS s2
 ON s1.subpage_id = s2.subpage_id WHERE s1.page_id = 18;

在我看来,您甚至不需要任何派生表-只需您可以在下面进行操作-

SELECT s1.* FROM subpages AS s1 join subsubpages s2 
ON s1.subpage_id = s2.subpage_id WHERE s1.page_id = 18
于 2019-10-03T10:54:45.287 回答