1. ホーム
  2. データベース
  3. Mysql

Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。

2022-01-21 15:19:46
<パス

Mysqlのエラー報告
Operand should contain 1 column(s)
ERROR 1241 (21000): Operand should contain 1 column(s)

1. エラー報告

()

2. エラー報告理由

  • この文は、selectの結果セットが()でくくられるために起こることがほとんどです。
  • の使用は select は、その 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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

上記のSQLでこのエラーが発生する理由は、サブクエリで value_date pit_key not in (...) フィールドがあり、比較するオプションは pit_key not in (...) の場合、フィールドが一致しないためエラーとなります。

3. ソリューション

さまざまな理由で変更する。