mysql SELECT 查询语法问题

mysql SELECT query syntax issue

SELECT * FROM `question` WHERE que_id =(select * from emp_qusans where emp_id=9 and ans!=3)

查询抛出以下错误消息。

1241 - Operand should contain 1 column(s)

我该如何解决?

您应该提供列名而不是 *。

SELECT * FROM question WHERE que_id =(select [column_name] from emp_qusans where emp_id=9 和 ans!=3)

您的查询有两个问题

use in clause instead of = your sub query returns full table emp_qusans, please specify a column from this table.

你的查询应该是这样的

SELECT * FROM question WHERE que_id in (select eq.column1 from emp_qusans eq where eq.emp_id=9 and eq.ans!=3)

SELECT * FROM question WHERE que_id =(select [column_name] from emp_qusans where emp_id=9 and ans! =3)

根据您与我们分享的 table 结构,您可能打算 select 子查询中的 qid 列:

SELECT *
FROM question
WHERE que_id = (SELECT qid FROM emp_qusans WHERE emp_id = 9 AND ans != 3)

顺便说一下,您遇到的操作数错误是因为 SELECT * returns multiple 列(读取:值),但您正在尝试将其与单个标量列进行比较。显然,这没有任何意义。

请确保您的子查询 returns 一行,并且您需要在子查询中使用列名而不是 *。

SELECT *
FROM question
WHERE que_id = (select [column name] 
                from emp_qusans 
                where emp_id=9 and ans!=3)