MW211 EXIT

devlog
SQL/副問い合わせ(3)
2012年08月01日
「単一行」副問い合わせは、対象とする表が複数行の表であっても
選択(SELECTの行数)によって、単一行となった場合には成立する。
  ○SELECT * FROM 単一行表
  ○SELECT * FROM 複数行表 WHERE 列 = 一意値
  ×SELECT * FROM 複数行表 WHERE 列 = 非一意値
これは実際のデータに左右されるので、やってみないとわからない。
(やった瞬間の状態に依存する)
例えば、ある列について、行1にのみ「A」という値が入っている場合に
その列に対して「A」を条件に抽出(選択)を行えば「単一行」副問い合わせが成立する。
しかし、直後に行2にも「A」という値を入れて再度SQL文を実行した場合、
今度は「単一行」副問い合わせが成立しなくなる。

ということで、「単一行」副問い合わせが成立するか否かは
事前に厳密に精査しておかねばならない。
基本的に(条件にNULLが絡まない限り)UNIQUE属性の列を
抽出条件の対象としておけば問題ないだろう。
分類:SQL