Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie usuwajace dane
air_szyna
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.02.2004

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


Witam

Mam Problem z napisaniem jednego zapytania.
Mam 2 tabele

W pierwszej są pola
| id_gracza | nick gracza |

W drugiej
| id_gracza | ilosc_pkt | data |

I teraz chodzi mi o zapytanie które z drugiej tabeli usunie wszystkie rekordy które nie pasują do żadnego gracza.
Jeśli np z tabeli pierwszej usunę gracza o identyfikatorze 5,6,9 i 15 to chciałbym żeby zapytanie usuwało z drugiej tabeli wszystkie dane do tych graczy.
Go to the top of the page
+Quote Post
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. DELETE FROM tabela2 WHERE id_gracza NOT IN (SELECT id_gracza FROM tabela1)


Lepiej jednak zrobisz, jeśli podczas usuwania danych z tabeli1, usuniesz dane z tabeli2

  1. DELETE FROM tabela1 WHERE id_gracza = 1;
  2. DELETE FROM tabela2 WHERE id_gracza = 1;


Wartość 1 jest tu tylko przykładem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
air_szyna
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.02.2004

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


Dzięki ... właśnie o to mi chodziło :-)

A dlaczego drugie rozwiązanie jest lepsze (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Usuwając dane w tym samym mniej więcej momencie, będziesz miał pewność, iż nie będą wisiały "puste" wpisy. W ten sposób będziesz miał większy porządek w bazie. Poza tym jeśli chcesz używać pierwszego rozwiązania, musisz wykonywać zapytanie cyklicznie, a to oznacza jakiś skrypcik działający w cronie. Najlepszym rozwiązaniem byłoby napisanie trigerra, ktróry usuwałby dane z drugiej tabeli w momencie usunięcia ich z tabeli pierwszej.

edit
Zapomniałem dodać, by uważań na klucze obce i kolejności usuwania danych.

Ten post edytował batman 27.11.2006, 20:02:19
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: 15.09.2025 - 02:24