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)
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)