Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> DELETE FROM z wyników z SELECT
timon27
post
Post #1





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ć?

Ten post edytował timon27 29.07.2012, 13:30:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. DELETE FROM `t1` WHERE `id` IN( SELECT `id` FROM `t2` )
Go to the top of the page
+Quote Post
bpskiba
post
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
pmir13
post
Post #4





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 18:41