【MySQL】UNION MINUS が無いので、代わりに NOT EXISTS を使う方法について
MySQL は UNION MINUS が出来ないので、代わりに NOT EXISTS を使って実現します。
前回の記事の ユーザ変数を使って連番や、連続日付を取得する方法について のSQL文を参考にします。
8個の連続日付から、途中の4件を差し引く例を以下に示します。
最初の方のFROM句の中は、10日分の連続日付を生成するテーブル定義になります。
また、 NOT EXISTS 句のFROM句の中は、途中の日付から4日分の連続日付を生成するテーブルとなります。
それぞれのテーブルを日付カラムでリンクを行うと、出力として4日分の日付が中抜けした結果になります。
実行結果は以下の様になります。
■関連記事
⇒【MySQL】ダミーテーブルをUNIONで連結してコード表を作成する方法
⇒【MySQL】ユーザー変数を使ってSELECTに行番号を付加する方法
⇒【MySQL】カラム名を囲むバッククオートについて
⇒【MySQL】UNIONMINUSが無いので、代わりにNOTEXISTSを使う方法について
⇒【MySQL】ユーザ変数を使って連番や、連続日付を取得する方法について
前回の記事の ユーザ変数を使って連番や、連続日付を取得する方法について のSQL文を参考にします。
8個の連続日付から、途中の4件を差し引く例を以下に示します。
最初の方のFROM句の中は、10日分の連続日付を生成するテーブル定義になります。
また、 NOT EXISTS 句のFROM句の中は、途中の日付から4日分の連続日付を生成するテーブルとなります。
それぞれのテーブルを日付カラムでリンクを行うと、出力として4日分の日付が中抜けした結果になります。
実行結果は以下の様になります。
■関連記事
⇒【MySQL】ダミーテーブルをUNIONで連結してコード表を作成する方法
⇒【MySQL】ユーザー変数を使ってSELECTに行番号を付加する方法
⇒【MySQL】カラム名を囲むバッククオートについて
⇒【MySQL】UNIONMINUSが無いので、代わりにNOTEXISTSを使う方法について
⇒【MySQL】ユーザ変数を使って連番や、連続日付を取得する方法について
コメント