私は多対多の関係を持っています
--------------------
| user_id | name |
--------------------
| 1 | user1 |
--------------------
| 2 | user2 |
--------------------
| 3 | user3 |
--------------------
--------------------
| type_id | name |
--------------------
| 1 | type1 |
--------------------
| 2 | type2 |
--------------------
| 3 | type3 |
--------------------
---------------------
| user_id | type_id |
---------------------
| 1 | 1 |
---------------------
| 1 | 2 |
---------------------
| 1 | 3 |
---------------------
| 2 | 1 |
---------------------
| 2 | 2 |
---------------------
| 3 | 3 |
---------------------
ユーザーがタイプ3の場合、そのユーザーをまったく返さないようにクエリを作成しようとしています。これまでのところ、タイプ3のユーザーを除外するクエリがありますが、他のタイプも割り当てられている場合は返されます。
SELECT COUNT(DISTINCT `t`.`user_id`)
FROM `user` `t`
LEFT OUTER JOIN `type` `type_type` ON (`t`.`user_id`=`type_type`.`user_id`)
LEFT OUTER JOIN `type` `type` ON (`type`.`type_id`=`type_type`.`type_id`)
WHERE ((type.type_ids NOT IN (3));
そのユーザーは複数のタイプに割り当てられているため、上記のクエリは引き続き返さuser_id 1
れます。他のタイプがいくつ割り当てられていても、タイプ3のユーザーを削除するにはどうすればよいですか。