フロー図とSQL

フロー図からSQL文を書くとき良く分からないので図に書いてみた。

flowchart_01

フローをたどっていって、のところの値を抽出する際は

SELECT *

FROM ID

WHERE AID = 1 AND

     BID = 2 AND

     CID = 3

これはなんとなく分かる。

適当な表を作って、確認すると青の行がこの抽出結果になる。

では、それ以外の値はどうなるかとなると、WHERE句にNOTをつけて

SELECT *

FROM ID

WHERE NOT (AID = 1 AND

     BID = 2 AND

     CID = 3)

になるだろう。

値的には、表の赤の行になるはず(青の行以外と言う意味)

これがの抽出結果になるはず

ただ、これだけだとよく分からない。

ド・モルガンの法則で考えると

NOT (AID = 1 AND BID = 2 AND CID = 3)

AID <> 1 OR BID <> 2 OR CID <> 3

になるはず。多分。

そうなると

SELECT *

FROM ID

WHERE AID <> 1 OR

BID <> 2 OR

CID <> 3

になるが、このORがなんとなく違うのかなぁと感じたりもする。

そこで下記図のように分けて考えてみると

flowchart_02

となるので、あっていることが分かるのでそうなのだろう。

普段フロー図からSQL文へ起こしたりしないので

中々要領を得ないが、少しずつなれていこう