SELECT * FROM `question` WHERE que_id =(select * from emp_qusans where emp_id=9 and ans!=3)
该查询将引发以下错误消息。
1241 - 操作数应包含1列
我该如何解决?
答案 0 :(得分:1)
请确保您的子查询返回一行,并且您需要在子查询中使用列名而不是*。
SELECT *
FROM question
WHERE que_id = (select [column name]
from emp_qusans
where emp_id=9 and ans!=3)
答案 1 :(得分:0)
而不是*你应该提供列名。
SELECT * FROM question WHERE que_id =(从emp_qusans中选择 [column_name] ,其中emp_id = 9且ans!= 3)
答案 2 :(得分:0)
您的查询中有两个问题
使用in子句而不是= 您的子查询返回完整的表emp_qusans,请从此表中指定一列。
您的查询将是这样的
SELECT * FROM question
WHERE que_id in(从emp_qusans eq中选择eq.column1,其中eq.emp_id = 9和eq.ans!= 3)
答案 3 :(得分:0)
SELECT * FROM question WHERE que_id =(从emp_qusans中选择[column_name],其中emp_id = 9且ans!= 3)
答案 4 :(得分:0)
从您与我们分享的表格结构中,您可能打算在子查询中选择qid
列:
SELECT *
FROM question
WHERE que_id = (SELECT qid FROM emp_qusans WHERE emp_id = 9 AND ans != 3)
顺便说一句,你得到的操作数错误正在发生,因为SELECT *
返回多个列(读取:值),但是你试图将它与单个标量列进行比较。显然,这没有任何意义。