質問: 作業明細テーブル.作業詳細ID AND NOT (作業明細テーブル.作業内容 LIKE '%hogehoge%' OR 作業明細テーブル.作業内容 LIKE '%nullnull%') ``` どうすれば特定の文字列が入っていない作業番号を抜き出すことができるでしょうか?教えてください
回答: すべての「作業ID」から当該文字列を含む「作業ID」を除外すればよいです。 前者は ``` SELECT ID FROM 作業テーブル ``` 後者は ``` SELECT 作業詳細テーブル.作業ID FROM 作業詳細テーブル INNER JOIN 作業明細テーブル ON 作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID WHERE 作業内容 LIKE '%hogehoge%' OR 作業内容 LIKE '%nullnull%' ``` で取得できますので、`EXCEPT`演算子を使用して以下のようになります。 ``` SELECT ID FROM 作業テーブル EXCEPT SELECT 作業詳細テーブル.作業ID FROM 作業詳細テーブル INNER JOIN 作業明細テーブル ON 作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID WHERE 作業内容 LIKE '%hogehoge%' OR 作業内容 LIKE '%nullnull%' ```