Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déterminer s'il existe une combinaison d'enregistrements plusieurs à plusieurs

Avez-vous vraiment avoir des clés étrangères ? Il devrait y avoir un moyen de déclarer cette combinaison de table1.key-->table2.key unique. Ce qui entraînerait une erreur SQL régulière, lors de la production d'une paire d'entrées déjà existante. C'est ce que j'aime dans les clés étrangères. C'est très propre, car l'intelligence sur les entrées (non) autorisées reste au niveau de la base de données.

Vous avez une table A_B contenant des devoirs, n'est-ce pas ? A.id 88 appartient à B.id 99 ... etc. ?

Et vous prévoyez d'insérer UN enregistrement A combiné avec n enregistrements B ? Pourquoi pas - si les nouvelles valeurs sont A=99 et B :10, 11, 12, 17, 18, 20

SELECT b_id
FROM A_B
WHERE a_id = 99
AND b_id IN (10, 11, 12, 17, 18, 20);

Cela se traduira par une liste de b_ids que vous ne devez plus insérer ... OU un résultat vide (toutes les entrées sont nouvelles).