如果我使用:
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)
结果不正确。结果中包含 id 为 29 或 3 的条件。他们不应该。我该如何解决?