アルゴリズムとデータ構造

ドモルガンでSQLリファクタ

MySQL

NOT (A or B) = (NOT A) and (NOT B)

 

 

抽象例

SELECT * FROM table WHERE NOT (A or B);
同じ
SELECT * FROM table WHERE (NOT A) and (NOT B);

 

具体例

HAVING
  NOT (
    COUNT(DISTINCT a.id) > 1
      OR COUNT(DISTINCT b.id) > 1
  )

リファクタ

HAVING
  COUNT(DISTINCT a.id) = 1
  AND COUNT(DISTINCT b.id) = 1

NOT (A and B) = (NOT A) or (NOT B)

 

抽象例

SELECT * FROM table WHERE NOT (A and B);
SELECT * FROM table WHERE (NOT A) or (NOT B);

具体例

  HAVING
    NOT (
      COUNT(DISTINCT a.id) > 1
        AND COUNT(DISTINCT b.id) > 1
    )

リファクタ

HAVING
  COUNT(DISTINCT a.id) = 1
    OR COUNT(DISTINCT b.id) = 1

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)