hente id fra 2 tabeller som kan bruges i en mange til mange tabel
Hej eksperter.Så jeg har 3 tabeller.
tabel_artikler
tabel_tags
artikler_tags - mange til mange relationer mellem artikler og tags
tabellerne indeholder en masse kolonner, men lige pt, skær jeg dem ned til hvad spørgsmålet handler om, for ikke og forvirre.
tags indeholder id (int, auto increment,primary), name (varchar(255),unique)
artikler indeholder id (int, auto increment,primary)
artikler_tags indeholder artikel_id (int), tag_id (int) med et index (artikel_id,tag_id (unique)
altså en ganske normal mange til mange relations tabel skema.
lige pt, så når der bliver lagt en ny artiekl op, så laver jeg en INSERT INTO på artiekl og tags, hvor jeg lidt dovent bruger on duplicate til at ignorere tags der allerede findes, så jeg kun skal bruge 2 sql sætninger dertil.
nu kommer det så til relations tabellen, hvor jeg skal bruge id'erne fra artikel og tags tabellen, de bliver jo oprettet på insert into, så jeg kender ikke til dem i min kode, med mindre jeg først henter dem.
lige pt, henter jeg dem ved og spørge efter dem med 2 select queues, for at jeg kan lave insert into's til artikler_tags.
findes der ikke en måde, hvor jeg istedet kan hente dem, i samme sql sætning, jeg laver mine relationer? så jeg kan få reduceret koden?
foreach($tags as $tag){
$sql = "INSERT INTO artikler_tags (artikel_id,tag_id) VALUES(SELECT id FROM tags WHERE name=$tag LIMIT 1,SELECT id FROM artikler ORDER BY id desc LIMIT 1)
}
eller noget i den stil, jeg har ikke kunne finde nogen gode svar på nettet desvære, så håber jeg kan få et her, på forhånd tak.