MySQL方言にはMINUSとかEXCEPTが無いので、集合の差分を表現するのが意外と面倒くさい。大抵の場合、相関サブクエリでNOT EXISTSを使ったSQLを書くことになる。 一般従業員を示すemployeeとリーダー職を示すleaderという二種類のテーブルがあるとする。 CREATE TABLE employee ( id INT NOT NULL, PRIMARY KEY(id) ); CREATE TABLE leader ( id INT NOT NULL, PRIMARY KEY(id) ); employeeにはleaderの中身も含まれているとする。さて問題。employeeではあるが、leaderではないidを洗い出したい。 employee集合からleader集合を引くことができれば、該当のid群を洗い出せる。
