Les clefs ne changent rien aux possibilités...
soit tu veux faire la même condition sur chacune des deux colonnes :
WHERE id1 NOT IN (...) AND id2 NOT IN (...)
soit c'est le couple qui ne doit pas exister. Dans ce cas, tu peux utiliser un ROW CONSTRUCTOR avec une table de couples interdits.
WHERE (id1, id2) NOT IN (SELECT id1, id2 FROM INTERDITS)
Si tu as un SGBD qui ne permet pas cette utilisation du ROW CONSTRUCTOR, il reste la solution de la concaténation (en supposant que le caractère # n'existe pas dans les données) :
WHERE CONCAT(id1, '#', id2) NOT IN (...)
Partager