Mysql報錯Operand should contain 1 column(s)
1.報錯
ERROR 1241 (21000): Operand should contain 1 column(s)
2. 報錯原因
- 這個陳述句的出現多是因為將select 的結果集用()包住了,
- 使用
()將select括注是正常的,但是可能是欄位使用不當,如下面的SQL:
select
pit_key
,employee_code
,department_id
,value_date
from pit_employee_department ped
where ped.employee_code = 'GSCQ3349'
and ped.value_date < date_format(date_sub(curdate(), interval day(curdate()) - 1 day),'%Y%m%d')
and ped.pit_key not in
( select
pit_key
,value_date
from pit_employee_department ped_1
inner join
(
select
max(value_date) as max_date
from pit_employee_department ped
where ped.value_date <= date_format(date_sub( date_sub(curdate(), interval day(curdate()) - 1 day),interval 1 month),'%Y%m%d')
and employee_code = 'GSSH0039'
)ped_2
on ped_1.value_date < ped_2.max_date
and ped_1.employee_code = 'GSSH0039'
);
執行上面的SQL 報這個錯的原因是:在子查詢中使用了pit_key 和 value_date兩個欄位,而比較的選項是pit_key not in (...) ,欄位不一致導致出錯,
3. 解決方案
針對不同的原因進行修改,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/144657.html
標籤:AI
