Ако наистина искате да напишете своя собствена (работеща) заявка..
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
)
... но MySQL може да се справи с всичко това вместо вас!
Не се нуждаете от първични ключове, за да накарате MySQL да се справи с това вместо вас, трябва да добавите UNIQUE
ключово ограничение за комбинирания набор от двете колони.
Заявка за добавяне на уникалния ключ dent_group_uniq_key
към groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
След това използвайте INSERT IGNORE
на вашата заявка:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
ще се опита да вмъкне ред във вашата таблица, ако не успее поради ключово ограничение, ще действа така, сякаш нищо не се случва.