LoginSignup
13
5

More than 3 years have passed since last update.

【SQL】Error Code: 1241. Operand should contain 1 column(s)のエラーの対処方法について

Posted at
Error Code: 1241. Operand should contain 1 column(s)

このエラーは自分がサブクエリを走らせたときにでてきました。
どういうパターンのときにでてきて、どのように対処すればいいのか紹介していこうと思います。

  1. オペランドとは
  2. サブクエリのオペランド
  3. 対処 オペランドとは

オペランドとは何か?

オペランド (operand)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

このサイトによると、式を構成する要素、演算子ではなく数字や変数のことというわけです。
直訳すると被演算子という意味になります。

SQLの場合だと、、?


select * from tableA

この*のところです。

オペランドと聞いて僕はオペラント条件づけのことを思い出しましたが、関係なかったです。
operandoperantですw
operantだと「事象によって変化する行動」みたいな意味になります。全然違います

サブクエリのオペランドと対処方法

今回のエラーは


select * from tableA where (select * from tableB where columnA = "A") is not null

みたいな感じでサブクエリを書いたときに発生しました。

エラー文によると、「オペランドが一つのカラムを持っている必要がある」ということを行っていますね。
今回の文だとサブクエリのオペランドが*になっていて、複数カラムを指定していますね。
これに対して、「is null」を適用することはできません。tableAの中からカラムをひとつだけえらんで対象に設定できるようにすればいいかと思います。

以上でなおる簡単なエラーでした。
もしこのエラーがでたら、オペランドの意味を確認してselectでとってきているものに問題がないかなどを確認してあげて下さい。

以上です。

13
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5