2017-06-15 102 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