SQL:消息116,级别16,状态1,行1当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式

leo*_*nyx 0 t-sql sql-server select

请帮我解决这个问题

消息116,级别16,状态1,行1
当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式.

这是我的查询

SELECT  a.RegId,
        a.PropertyThumbnail
FROM    tblPropertyDetail a
WHERE   a.RegId NOT IN 
        (
            SELECT  RegId,
                    COUNT(RegId) AS NumOccurrences
            FROM tblPropertyDetail
            GROUP BY RegId
            HAVING (COUNT(RegId) > 1)
        )
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 6

在子查询中删除此列 COUNT(RegId) AS NumOccurrences

SELECT a.RegId,
        a.PropertyThumbnail
FROM tblPropertyDetail a
WHERE a.RegId NOT IN (
                SELECT RegId
                FROM tblPropertyDetail
                GROUP BY RegId
                HAVING (COUNT(RegId) > 1)
                )
Run Code Online (Sandbox Code Playgroud)

在使用时NOT IN,预期子查询返回的列数只有一个.

或者,您也可以使用 JOIN

SELECT  a.RegId,
        a.PropertyThumbnail
FROM    tblPropertyDetail a
        LEFT JOIN
        (
            SELECT RegId, COUNT(RegId) AS NumOccurrences
            FROM tblPropertyDetail
            GROUP BY RegId
            HAVING (COUNT(RegId) > 1)
        ) b ON a.RegId = b.RegId
WHERE   b.RegId IS NULL
Run Code Online (Sandbox Code Playgroud)