フロー図とSQL
フロー図からSQL文を書くとき良く分からないので図に書いてみた。
フローをたどっていって、●のところの値を抽出する際は
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がなんとなく違うのかなぁと感じたりもする。
そこで下記図のように分けて考えてみると
となるので、あっていることが分かるのでそうなのだろう。
普段フロー図からSQL文へ起こしたりしないので
中々要領を得ないが、少しずつなれていこう