当前位置: 首页 > 面试题库 >

如何在OUTER JOIN语句中编写子查询

司徒杜吟
2023-03-14
问题内容

我想加入两个表CUSTMR和DEPRMNT。

我需要的是:LEFT OUTER JOIN内有两个或多个带有子查询的表的LEFT OUTER JOIN,如下所示:

表格:CUSTMR,DEPRMNT

查询为:

SELECT
    cs.CUSID
    ,dp.DEPID
FROM
    CUSTMR cs
        LEFT OUTER JOIN (
            SELECT
                    dp.DEPID
                    ,dp.DEPNAME
                FROM
                    DEPRMNT dp
                WHERE
                    dp.DEPADDRESS = 'TOKYO'
        )
            ON (
                dp.DEPID = cs.CUSID
                AND cs.CUSTNAME = dp.DEPNAME
            )
WHERE
    cs.CUSID != ''

这里的子查询是:

SELECT
    dp.DEPID, dp.DEPNAME
FROM
    DEPRMNT dp
WHERE
    dp.DEPADDRESS = 'TOKYO'

是否可以在LEFT OUTER JOIN内编写这样的子查询?

在我的DB2数据库上运行此查询时出现错误。


问题答案:

您需要在子选择上使用“ correlation id”(“ AS SS”)来引用“ ON”条件下的字段。在子选择内分配的ID在联接中不可用。

SELECT
       cs.CUSID
       ,dp.DEPID
FROM
    CUSTMR cs
        LEFT OUTER JOIN (
            SELECT
                    DEPID
                    ,DEPNAME
                FROM
                    DEPRMNT 
                WHERE
                    dp.DEPADDRESS = 'TOKYO'
        ) ss
            ON (
                ss.DEPID = cs.CUSID
                AND ss.DEPNAME = cs.CUSTNAME
            )
WHERE
    cs.CUSID != ''


 类似资料:
  • 我想加入两张桌子。 我需要的是:两个或多个表的左外联接,左外联接内有子查询,如下所示: 在我的DB2数据库上运行这个查询时,我得到了一个错误。

  • 我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)

  • 问题内容: 如何在MySQL查询中编写IF ELSE语句? 像这样: 然后在我的数组中,我应该能够做到这一点: 问题答案: 您可能要使用表达式。 他们看起来像这样:

  • 数据库:Sybase Advantage 11 在我对数据进行规范化的过程中,我试图删除从以下语句中得到的结果:

  • 问题内容: 在python中,我们使用反斜杠表示当前语句继续到下一行 例如, 或者简单地说, 可以用Go语言做到这一点吗?谢谢 问题答案: 当然可以,只需将运算符放在最后,例如: 另请注意,不可能在操作员之前中断换行。以下代码 无效 : 该规则在此处和规范中进行了描述。

  • 问题内容: 我正在使用MySQL,并且想在SQL中执行一种三元语句,例如: 结果将类似于: 如何做到这一点? 问题答案: