Se vuoi davvero scrivere la tua query (funzionante)..
INSERT INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) SELECT
'$_POST[id]' f_dent_id,
'$groupid' f_group_id,
'$scheduleid' f_schedule_id
FROM DUAL
WHERE NOT EXISTS (
SELECT 1
FROM `groupdentlink`
WHERE
f_dent_id = '$_POST[id]' AND f_group_id = '$groupid'
LIMIT 1 -- will stop mysql to stop searching after first match
)
... ma MySQL può gestire tutto questo per te!
Non hai bisogno di chiavi primarie per fare in modo che MySQL gestisca questo per te, dovresti aggiungere un UNIQUE
vincolo chiave sull'insieme combinato delle due colonne.
Query per aggiungere la chiave univoca dent_group_uniq_key
a groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Quindi usa INSERT IGNORE
sulla tua richiesta:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
cercherà di inserire una riga nella tabella, se fallisce a causa di un vincolo chiave si comporterà come se nulla fosse.