mySQL错误需要一些帮助

时间:2010-02-12 14:51:07

标签: mysql

我正在尝试运行嵌套查询但是我收到此错误,

#1241 - Operand should contain 1 column(s)

这是我正在尝试运行的查询,

SELECT *
FROM `categoryTable`
WHERE `categoryId` NOT
IN (
SELECT `categoryTable`.`categoryId` , `categoryTable`.`categoryTitle` , `userMenuTable`.`menuEntryId`
FROM (
`categoryTable`
)
LEFT JOIN `userMenuTable` ON `categoryTable`.`categoryId` = `userMenuTable`.`categoryId`
WHERE `userMenuTable`.`cookieId` = 'bang4b696152b4869'
)
LIMIT 0 , 30 

2 个答案:

答案 0 :(得分:0)

第5行应

SELECT `categoryTable`.`categoryId`

即。它应该只引用categoryId 换句话说,对于WHERE xyz [NOT] IN (SELECT ...谓词,嵌套选择中应该只有一列,一列对应于“xyz”列,但当然不必命名相同。原因是SQL不知道嵌套查询的哪一列用于与“xyz”列进行比较;一个较小的原因是其他列无用,为什么要将它们带入?

答案 1 :(得分:0)

是。我同意@mjv,基本上你要查看categoryId是否不在

列表中
`SELECT `categoryTable`.`categoryId` , `categoryTable`.`categoryTitle` , `userMenuTable`.`menuEntryId`
FROM (
`categoryTable`
`

因此,您只需要提及一个字段categoryID,它将检查它是否不在此列表中。

希望这有一定道理。