Hvis du virkelig vil skrive din egen (fungerende) forespørgsel..
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
)
... men MySQL kan klare alt dette for dig!
Du behøver ikke primære nøgler for at få MySQL til at håndtere dette for dig, du bør tilføje en UNIQUE
nøglebegrænsning på det kombinerede sæt af de to kolonner.
Forespørgsel om at tilføje den unikke nøgle dent_group_uniq_key
til groupdentlink
.
ALTER TABLE groupdentlink ADD UNIQUE KEY `dent_group_uniq_key` (
f_dent_id, f_group_id
);
Brug derefter INSERT IGNORE
på din forespørgsel:
INSERT IGNORE INTO groupdentlink (
f_dent_id, f_group_id, f_schedule_id
) VALUES (
'$_POST[id]', '$groupid', '$scheduleid'
)
INSERT IGNORE
vil forsøge at indsætte en række i din tabel, hvis den mislykkes på grund af en nøglebegrænsning, vil det virke som om der ikke sker noget.