mysql SELECT查询语法问题
SELECT * FROM `question` WHERE que_id =(select * from emp_qusans where emp_id=9 and ans!=3)
查询抛出以下错误消息。mysql SELECT查询语法问题
1241 - 操作数应包含1列(S)
我怎样才能解决这个问题?
从您与我们共享的表结构,你可能打算在你的子查询中选择qid
柱:
SELECT *
FROM question
WHERE que_id = (SELECT qid FROM emp_qusans WHERE emp_id = 9 AND ans != 3)
顺便说一句,你得到操作数错误发生了什么,因为SELECT *
回报多个列(读:值),但你试图与此相比,单个标柱。显然,这没有任何意义。
感谢提示 – Chetan
而不是*你应该提供列名称。
SELECT * FROM问题WHERE que_id =(选择[COLUMN_NAME]从emp_qusans其中EMP_ID = 9,答!= 3)
有在查询条款
使用的两个问题而不是= 您的子查询返回完整表emp_qusans,请指定该表中的一列。
您的查询会是这样
SELECT * FROM question
WHERE que_id中(从emp_qusans EQ其中eq.emp_id = 9,eq.ans选择eq.column1!= 3)
SELECT * FROM问题WHERE que_id =(选择[COLUMN_NAME]从emp_qusans其中EMP_ID = 9,ANS = 3!)
请确保您的子查询返回一行,并且您需要在子查询中使用列名称而不是*。
SELECT *
FROM question
WHERE que_id = (select [column name]
from emp_qusans
where emp_id=9 and ans!=3)
感谢提示 – Chetan
不知道'emp_qusans'表的结构,不能给出确切的答案。 –
确定检查此链接的表结构。 https://ibb.co/kOOpL5 – Chetan