我正在尝试运行嵌套查询但是我收到此错误,
#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
答案 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
,它将检查它是否不在此列表中。
希望这有一定道理。