Se você realmente deseja escrever sua própria consulta (de trabalho).
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
)
... mas o MySQL pode lidar com tudo isso para você!
Você não precisa de chaves primárias para fazer o MySQL lidar com isso para você, você deve adicionar um
UNIQUE
restrição de chave no conjunto combinado das duas colunas. Consulta para adicionar a chave exclusiva
dent_group_uniq_key
para groupdentlink
. ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Em seguida, use
INSERT IGNORE
na sua consulta:INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
tentará inserir uma linha na sua tabela, se falhar devido a uma restrição de chave, agirá como se nada acontecesse.