【问题标题】:#1241 - Operand should contain 1 column(s) nested query [duplicate]#1241 - 操作数应包含 1 列嵌套查询 [重复]
【发布时间】:2021-03-11 05:57:05
【问题描述】:

我在输入这个命令时发现了这个错误

SELECT *
FROM  Borrowed_Book , User
WHERE User.UserId=Borrowed_Book.UserId  IN (
    SELECT *
    FROM Book , Book_version_info
    WHERE 
        Book_version_info.PublisherID = 1 AND 
        Book.ISBN= Book_version_info.Book_ISBN
);

我找不到这里的问题以及为什么会出现此错误 我在网上搜索,但找不到原因

【问题讨论】:

  • 您认为WHERE a = b IN ( ... ) 是什么意思,您为什么这么认为?也许如果您再看一下 IN 子句的工作原理,它可能会很有启发性,例如网络搜索sql in subquery
  • 您尝试通过查询实现什么目标?
  • 请自行完成作业或使用搜索功能在这里找到合适的答案;-)
  • “我输入这个命令时发现这个错误”,什么错误???

标签: mysql mysql-error-1241


【解决方案1】:

首先你应该在 IN 函数中匹配你的列:

WHERE User.UserId=Borrowed_Book.UserId  IN (
    SELECT *
    FROM Book , Book_version_info
    WHERE 
        Book_version_info.PublisherID = 1 AND 
        Book.ISBN= Book_version_info.Book_ISBN
);

SQL 不知道如何处理列应该相同,因此请尝试:

WHERE User.UserId=Borrowed_Book.UserId  AND User.UserId IN (
    SELECT User.UserId
    FROM Book , Book_version_info, User
    WHERE 
        Book_version_info.PublisherID = 1 AND 
        Book.ISBN= Book_version_info.Book_ISBN
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多