Wenn Sie wirklich Ihre eigene (funktionierende) Abfrage schreiben wollen...
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
)
... aber MySQL kann das alles für Sie erledigen!
Sie benötigen keine Primärschlüssel, damit MySQL dies für Sie erledigt, Sie sollten einen UNIQUE
hinzufügen Schlüsseleinschränkung für den kombinierten Satz der beiden Spalten.
Abfrage zum Hinzufügen des eindeutigen Schlüssels dent_group_uniq_key
zu groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Verwenden Sie dann INSERT IGNORE
zu Ihrer Anfrage:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
wird versuchen, eine Zeile in Ihre Tabelle einzufügen, wenn dies aufgrund einer Schlüsselbeschränkung fehlschlägt, wird es so tun, als ob nichts passieren würde.