Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 子查询返回了多个值。当子查询后跟=、!=、时,不允许这样做>;=或者当子查询用作expr时_Mysql_Sql_Subquery - Fatal编程技术网

Mysql 子查询返回了多个值。当子查询后跟=、!=、时,不允许这样做>;=或者当子查询用作expr时

Mysql 子查询返回了多个值。当子查询后跟=、!=、时,不允许这样做>;=或者当子查询用作expr时,mysql,sql,subquery,Mysql,Sql,Subquery,我从sql server收到以下错误消息 子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。显然,此子查询可以返回多个值: SELECT INT_ID, FST_NAME, LAST_NAME, MID_NAME, FIRST_NAME,LAST_NAME, MIDDLE_NAME, Null, Null, CASE WHEN LEVELS = 'Done' THEN 1 ELSE NULL END AS Verified, NULL FROM Cust

我从sql server收到以下错误消息


子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。

显然,此子查询可以返回多个值:

SELECT
    INT_ID, FST_NAME, LAST_NAME, MID_NAME, FIRST_NAME,LAST_NAME, MIDDLE_NAME, Null, Null,
    CASE WHEN LEVELS = 'Done' THEN 1 ELSE NULL END AS Verified,
    NULL
FROM Customer_Table
WHERE 
    CREATEDDATE = (SELECT DISTINCT MAX(CREATEDDATE) FROM Customer_Table  GROUP BY INT_ID)
我很确定您打算使用相关子查询:

where CREATEDDATE = (Select Distinct max(CREATEDDATE) From Customer_Table  group by INT_ID )

这听起来像是您想要一个最大每组查询:

select . . .
from Customer_Table ct
where ct.createddate = (select max(ct2.createddate)
                        from Customer_Table ct2
                        where ct2.int_id = ct.int_id
                       );

使用
行数
有一种更好(而且可能更高效)的方法,但是您的MySQL版本可能不支持它。

错误消息准确地告诉您错误是什么(子查询返回的多个值)以及原因。您是否尝试自行运行子查询以查看其返回的内容?此查询很可能比您接受的答案更快。
SELECT
    c1.INT_ID,
    c1.FST_NAME,
    c1.LAST_NAME,
    c1.MID_NAME,
    c1.FIRST_NAME,
    c1.LAST_NAME,
    c1.MIDDLE_NAME,
    NULL,
    NULL,
    CASE WHEN c1.LEVELS = 'Done' THEN 1 END AS Verified,
    NULL
FROM Customer_Table c1
INNER JOIN
(
    SELECT INT_ID, MAX(CREATEDDATE) AS max_date
    FROM Customer_Table
    GROUP BY INT_ID
) c2
    ON c1.INT_ID = c2.INT_ID AND
       c1.CREATEDDATE = c2.max_date;