4

我正在尝试这个QUERY,并返回这个奇怪的错误。这是什么意思?

这是我的查询:

SELECT * FROM newRowP a WHERE a.rowId IN 
(SELECT * FROM newCellP b WHERE b.cellId IN 
(SELECT * FROM newproviderP c WHERE c.pId IN ('3000344','245')))
4

2 回答 2

11

您的子查询 whichSELECT *将返回多于一列;而IN ()只需要返回一列。

于 2013-09-28T15:44:12.037 回答
0

SELECT子查询中的语句结果应该只返回一列。例如

SELECT * 
FROM newRowP a 
WHERE a.rowId IN (SELECT colName FROM newCellP b .....)

但更好的使用方法是使用IN表格JOIN

SELECT  DISTINCT a.*
FROM    newRowP a
        INNER JOIN newCellP b
            ON a.rowID = b.colName
        INNER JOIN newProviderP c
            ON b.cellID = c. colName
WHERE   c.pid IN ('3000344','245')

colname您要与其他表链接的列在哪里。

于 2013-09-28T15:44:48.200 回答