【问题标题】:Every derived table must have its own alias - even though i have alias for every table每个派生表都必须有自己的别名 - 即使我为每个表都有别名
【发布时间】:2019-10-03 10:53:42
【问题描述】:

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

这是我的命令:

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;

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

【问题讨论】:

    标签: sql table-alias


    【解决方案1】:

    子查询需要一个别名:

    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;
    

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

    【讨论】:

      【解决方案2】:

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

      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
      

      【讨论】:

      • 有效,谢谢 :) 太糟糕了,我不能接受 2 个答案,所以我选择接受第一个出现的答案,对此感到抱歉。
      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2014-10-10
      • 2017-09-02
      相关资源
      最近更新 更多