Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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
 
Start new topic
Odpowiedzi (1 - 3)
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 winksmiley.jpg


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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 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


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 03:24