Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: DELETE FROM z wyników z SELECT
Forum PHP.pl > Forum > Bazy danych > MySQL
timon27
Witam.
Utworzyłem kod:
  1. $result=mysql_query("SELECT * FROM baza1");
  2. while($tmp = mysql_fetch_assoc($result)){
  3. mysql_query("DELETE FROM baza2 WHERE id = ". $tmp['id']);
  4. }

(dwie bazy z 'wspólną' kolumną 'id')

Kod działa.
Martwi mnie tylko że duża część 'roboty ' jest przerzucona na php, które na mym serwerze (jak i większośći) jest o wiele wolniejsze od mysql.
Wydaje mi się że da się to zrobić w jednym zapytaniu mysql ?, jenak nie wiem jak mógłbym połączyć 'delete from' z 'inner join', ani nie mam innego pomysłu.
Jak je skostruować?
webdice
  1. DELETE FROM `t1` WHERE `id` IN( SELECT `id` FROM `t2` )
bpskiba
Cytat(webdice @ 29.07.2012, 14:51:19 ) *
  1. DELETE FROM `t1` WHERE `id` IN( SELECT `id` FROM `t2` )


Właśnie dostałem po głowie za taką propozycję
Temat: Duzy problem z duza baza
pmir13
I słusznie dostałeś.

  1. DELETE FROM baza2
  2. USING baza1, baza2
  3. WHERE baza1.id = baza2.id


lub też

  1. DELETE baza2
  2. FROM baza1 INNER JOIN baza2
  3. ON baza1.id = baza2.id
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.