Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 “in/ALL/ANY子查询”中的未知列_Mysql - Fatal编程技术网

Mysql “in/ALL/ANY子查询”中的未知列

Mysql “in/ALL/ANY子查询”中的未知列,mysql,Mysql,为什么我会犯这个错误?错误显示在OR子句中,但我正在SELECT语句中选择gl_ID ; DECLARE v_firstDate DATETIME SET @p_ID = 368 SELECT SUBDATE(NOW(), 1) INTO v_firstDate; SELECT t_ID, t_firstName, t_lastName FROM t_table WHERE ((@p_ID IN ( SELECT tt_ID FROM tt_tableTwo

为什么我会犯这个错误?错误显示在OR子句中,但我正在SELECT语句中选择gl_ID

; DECLARE v_firstDate DATETIME
SET @p_ID = 368
SELECT SUBDATE(NOW(), 1) INTO v_firstDate;
SELECT t_ID, t_firstName, t_lastName
FROM t_table
WHERE
((@p_ID IN (
        SELECT tt_ID
        FROM tt_tableTwo
        INNER JOIN st_stats ON (st_ID = tt_ID)
        INNER JOIN da_data ON (da_ID = st_ID AND da_name IN ("allCompanies", "allglobals"))
    )
))
OR
(
    (gl_ID IN ( //problem is here
        SELECT gl_ID
        FROM gl_globals
        INNER JOIN tr_transport ON (tr_id = gl_caseID AND tr_idOther = @p_ID)
        INNER JOIN co_countries ON (co_ID = gl_ID AND co_ID = @p_ID)
        )
    )
)
错误消息:

“in/ALL/ANY子查询”中的未知列“gl\u ID”

我应该使用AS还是HAVING?

gl\u ID在or子句中不可访问,因为它在t\u表中不存在。第一个FROM子句下的内部联接解决了这个问题

; DECLARE v_firstDate DATETIME
SET @p_ID = 368
SELECT SUBDATE(NOW(), 1) INTO v_firstDate;
SELECT t_ID, t_firstName, t_lastName
FROM t_table
INNER JOIN gl_globals ON (t_ID = gl_ID) // fix
WHERE
((@p_ID IN (
        SELECT tt_ID
        FROM tt_tableTwo
        INNER JOIN st_stats ON (st_ID = tt_ID)
        INNER JOIN da_data ON (da_ID = st_ID AND da_name IN ("allCompanies", "allglobals"))
    )
))
OR
(
    (gl_ID IN (
        SELECT gl_ID
        FROM gl_globals
        INNER JOIN tr_transport ON (tr_id = gl_caseID AND tr_idOther = @p_ID)
        INNER JOIN co_countries ON (co_ID = gl_ID AND co_ID = @p_ID)
        )
    )
)

您的gl_ID是否存在于t_table中?@LoïcDiBenedetto否,它存在于gl_globalsTry中,在外部和内部查询中使用tablename.gl_ID格式,以便mysql准确地知道您引用的gl_ID字段。查询中的括号太多了。不过我不理解您的说法,如果将未知字段与子查询的结果进行比较,则t_表的作用域中不存在第一个gl_ID字段