Jeśli naprawdę chcesz napisać własne (działające) zapytanie...
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
)
... ale MySQL poradzi sobie z tym wszystkim za Ciebie!
Nie potrzebujesz kluczy podstawowych, aby MySQL obsłużył to za Ciebie, powinieneś dodać UNIQUE
kluczowe ograniczenie połączonego zestawu dwóch kolumn.
Zapytanie o dodanie unikalnego klucza dent_group_uniq_key
do groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Następnie użyj INSERT IGNORE
na Twoje zapytanie:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
spróbuje wstawić wiersz do Twojej tabeli, jeśli nie powiedzie się z powodu ograniczenia klucza, zachowa się tak, jakby nic się nie stało.