Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Sql 在子查询中使用IN子句。比较的列名不同_Sql_Subquery_In Clause_In Subquery - Fatal编程技术网

Sql 在子查询中使用IN子句。比较的列名不同

Sql 在子查询中使用IN子句。比较的列名不同,sql,subquery,in-clause,in-subquery,Sql,Subquery,In Clause,In Subquery,我有一个元素表和一个指定这些元素之间层次结构的表。 知道一个元素的别名,我想得到它的子元素的别名。 指定元素ID参数的列在两个表中具有不同的名称 元素表具有以下相关列: 类型\设备\设备类型代码 元素\对元素的标识符进行编码 元素\u别名元素的别名 层次结构表具有以下相关列: 父元素\u ID父元素的标识符 父元素类型父元素的设备类型 子元素\u ID子元素的标识符 元素代码和子元素ID是我要比较的列 我想要的是: 了解父别名及其类型,获取其子别名 下面是我尝试嵌套子查询的内容: SELECT

我有一个元素表和一个指定这些元素之间层次结构的表。 知道一个元素的别名,我想得到它的子元素的别名。 指定元素ID参数的列在两个表中具有不同的名称

元素表具有以下相关列:

类型\设备\设备类型代码

元素\对元素的标识符进行编码

元素\u别名元素的别名

层次结构表具有以下相关列:

父元素\u ID父元素的标识符

父元素类型父元素的设备类型

子元素\u ID子元素的标识符


元素代码和子元素ID是我要比较的列

我想要的是:

了解父别名及其类型,获取其子别名

下面是我尝试嵌套子查询的内容:

SELECT ELEMENT_ALIAS
    FROM TUN_ELEMENT
        WHERE ELEMENT_CODE IN (
            SELECT * 
                FROM J_ELEMENT_HIERARCHY 
                    WHERE FATHER_ELEMENT_ID = (
                        SELECT ELEMENT_CODE 
                            FROM TUN_ELEMENT
                                WHERE ELEMENT_ALIAS = 'C-09-27-SAE-CR-002' AND TYPE_EQUIP_CODE = 4
                    ) 
                    AND FATHER_ELEMENT_TYPE = 4)
子查询单独工作,但在运行所有子查询时出现以下错误:

只有一个特殊情况才能在次级结果列表中表达,不存在特殊情况。。错误116。SQLSTATE 42000。严重性16。MsgState 1。第11行

翻译的意思是:

如果未使用EXISTS指定子查询,则只能在选择列表中指定一个表达式

我想得到的是,子元素的别名:

元素别名

C-09-27-SAE-CR-002-D-11

C-09-27-SAE-CR-002-D-12

C-09-27-SAE-CR-002-D-13


这可以通过子查询完成,还是只能通过JOIN完成?

您必须在子查询中只指定一列返回。 你可以找到更多。 要与元素代码进行比较的是元素别名还是父元素ID


元素代码和子元素ID是我要比较的列。只使用一列就行了。有没有一种方法可以对多列执行此操作?然后在上面的代码中替换为CHILD_ELEMENT_ID。
SELECT ELEMENT_ALIAS
    FROM TUN_ELEMENT
        WHERE ELEMENT_CODE IN (
            SELECT <Column name here> 
                FROM J_ELEMENT_HIERARCHY 
                    WHERE FATHER_ELEMENT_ID = (
                        SELECT ELEMENT_CODE 
                            FROM TUN_ELEMENT
                                WHERE ELEMENT_ALIAS = 'C-09-27-SAE-CR-002' AND TYPE_EQUIP_CODE = 4
                    ) 
                    AND FATHER_ELEMENT_TYPE = 4)