Mysql
 sql >> Database >  >> RDS >> Mysql

Determina se esiste una combinazione di record molti-a-molti

Davvero hai chiavi esterne? Ci dovrebbe essere un modo per dichiarare questa combinazione di table1.key-->table2.key unique.Che comporterebbe un normale errore SQL, quando si produce una coppia già esistente di voci. Questo è ciò che mi piace delle chiavi estere. È molto pulito, perché l'intelligence sulle voci (non) consentite rimane a livello di database.

Hai una tabella A_B contenente i compiti, vero?A.id 88 appartiene a B.id 99 ... ecc.?

E hai intenzione di inserire UN record A combinato con n record B? Perché no, se i nuovi valori sono A=99 e 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);

Ciò risulterà in un elenco di b_id che non devi inserire di nuovo ... OPPURE un risultato vuoto (tutte le voci sono nuove).