私が使用する場合:
SELECT *
FROM "moves"
INNER
JOIN "move_conditions"
ON "move_conditions"."move_id" = "moves"."id"
INNER
JOIN "conditions"
ON "conditions"."id" = "move_conditions"."condition_id"
WHERE "conditions"."id" IN (29, 3)
これにより、条件のIDが29または3である正しいテーブルが返されます。
ただし、試してみると:
SELECT *
FROM "moves"
INNER
JOIN "move_conditions"
ON "move_conditions"."move_id" = "moves"."id"
INNER
JOIN "conditions"
ON "conditions"."id" = "move_conditions"."condition_id"
WHERE "conditions"."id" NOT IN (29, 3)
結果は正しくありません。ID29または3の条件が結果に含まれます。彼らはすべきではありません。これを修正するにはどうすればよいですか?