Jag har tre tabeller i MySQL som samverkar enligt följande:
C (id, namn, ....)
B (id, namn, ..., C_id) C_id är foreign key till C's id
A (id, namn, ..., B_id) B_id är foreign key till B's id
id i A, B och C är en int auto_increment om det påverkar saken...
Pga otrolig klantighet från min sida vill jag nu plocka bort allting i A, B och C som "hör till" C.id=2. Jag vet, via select-sats, att detta gäller 11 <= B.id <= 35. Det finns ett stort antal rader i A som har dessa B_id:n.
Alltså skriver jag följande (i php):
$query = "SELECT min(id), max(id) FROM B
WHERE C_id = $id";
$res = mysql_query($query) or die("Answer check");
$minMax = mysql_fetch_array($res);
echo "$minMax[0], $minMax[1]<BR>";
$tst = "DELETE * FROM A
WHERE B_id >= $minMax[0] AND B_id <= $minMax[1]";
$res = mysql_query($tst) or die("Delete A");
$tst = "DELETE * FROM B
WHERE C_id = $id";
$res = mysql_query($tst) or die("Delete B");
$tst = "DELETE * FROM C
WHERE id = $id";
$res = mysql_query($tst) or die("Delete C");
Ger resultatet:
11, 35
Delete A
??? Var är felet?