webForumDet fria alternativet

Ta bort ur flera tabeller samtidigt?

Databaser & SQL

1 svar · 266 visningar · startad av HenrikAI

Medlem sedan nov. 2004112 inlägg
Frågan#1

Går det att förenkla detta på något sätt? Använder MySQL.

id = SELECT id FROM table1 WHERE villkor
DELETE FROM table1 WHERE id=id
DELETE FROM table2 WHERE id=id

Tillägg: För att göra det mer komplicerat kan första raden returnera flera id:n. Det är alla poster med dessa id:n jag vill ta bort. Dvs

DELETE FROM table1 WHERE id=id[0]
DELETE FROM table1 WHERE id=id[1]
...
DELETE FROM table2 WHERE id=id[0]
DELETE FROM table2 WHERE id=id[1]
...
Medlem sedan dec. 200012 464 inlägg
#2
DELETE FROM table2 
  WHERE id in (
    select id
     from table1 
  where villkor)

DELETE FROM table1
 WHERE villkor

eller så definerar de en foreign key med on delete cascade i vilket fall du enbart behöver den senare frågan.

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)