Si realmente desea escribir su propia consulta (de trabajo)...
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
)
... ¡pero MySQL puede manejar todo esto por ti!
No necesita claves principales para que MySQL maneje esto por usted, debe agregar un UNIQUE
restricción clave en el conjunto combinado de las dos columnas.
Consulta para agregar la clave única dent_group_uniq_key
a groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Luego usa INSERT IGNORE
en su consulta:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
intentará insertar una fila en su tabla, si falla debido a una restricción clave, actuará como si nada sucediera.