2017-06-15 71 views
0
SELECT * FROM `question` WHERE que_id =(select * from emp_qusans where emp_id=9 and ans!=3) 

查询抛出以下错误消息。mysql SELECT查询语法问题

1241 - 操作数应包含1列(S)

我怎样才能解决这个问题?

+1

不知道'emp_qusans'表的结构,不能给出确切的答案。 –

+0

确定检查此链接的表结构。 https://ibb.co/kOOpL5 – Chetan

回答

0

从您与我们共享的表结构,你可能打算在你的子查询中选择qid柱:

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

顺便说一句,你得到操作数错误发生了什么,因为SELECT *回报多个列(读:值),但你试图与此相比,单个标柱。显然,这没有任何意义。

+0

感谢提示 – Chetan

0

而不是*你应该提供列名称。

SELECT * FROM问题WHERE que_id =(选择[COLUMN_NAME]从emp_qusans其中EMP_ID = 9,答!= 3)

0

有在查询条款

使用的两个问题而不是= 您的子查询返回完整表emp_qusans,请指定该表中的一列。

您的查询会是这样

SELECT * FROM question WHERE que_id中(从emp_qusans EQ其中eq.emp_id = 9,eq.ans选择eq.column1!= 3)

0

SELECT * FROM问题WHERE que_id =(选择[COLUMN_NAME]从emp_qusans其中EMP_ID = 9,ANS = 3!)

1

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

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

感谢提示 – Chetan