Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako da napisem ovaj upit za brisanje?

[es] :: MySQL :: kako da napisem ovaj upit za brisanje?

[ Pregleda: 1665 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

antix

Član broj: 8388
Poruke: 265
*.mobtel.co.yu

Jabber: antix@elitesecurity.org


Profil

icon kako da napisem ovaj upit za brisanje?15.03.2004. u 12:19 - pre 243 meseci
Kako da najbrze uradim sledece. Tabele su sledece:

-----------------------
tabela1

nekipodaci1
sifra1
----------------------

---------------------
tabela2
sifra1
sifra2
---------------------

---------------------
tabela3
sifra2
nekipodaci3
---------------------

Znaci tabela2 povezuje tabelu1 i tabelu3. Sada ako mi je data sifra1 treba iz svih tabela da
obrisem sve povezane zapise. Znaci u tabeli2 nadjem sve vrijednosti sifra2 koje odgovaraju
vrijednosti koja je zadata za sifru1 i onda iz tabele3 brisem one zapise koji odgovaraju sifri2 a
zatim se vratim i brisem iz tabele2 i tabele1. Zanima me rjesenje (ako postoji) pomocu samo jednog upita (MySQL 3.23).
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: kako da napisem ovaj upit za brisanje?15.03.2004. u 12:41 - pre 243 meseci
Nije mi jasno zbog čega se ovde koriste 3 tabele. Predstavljena relacije opisuje odnos "više prema više" - slog iz tabele 1 se preko tabele 2 može povezati s više slogova tabele 3 a i obratno.

Ovakav zahtev za brisanje je u suprotnosti sa takvom relacijom. Evo skoro najkraćeg primera:
Tabela 1: ključevi 1 i 2
Tabela 3: ključevi a i b
Tabela 2: parovi (1, a), (1, b) i (2, a)
- Brisanje za ključ 2 tabele 1? U tabeli 2 pronađe se (2, a) odakle se nalazi u tabeli 3 ključ a i briše zapis, pa se iz tabele 2 briše (2, a) i na kraju iz tabele 1 briše zapis s ključem 2.
- U čemu je sad problem? U tabeli 2 je ostao slog (1, a) koji pokazuje na nepostojeći zapis tabele 3!

Može li se pojasniti zašto postoje 3 tabele?
 
Odgovor na temu

antix

Član broj: 8388
Poruke: 265
*.panline.net

Jabber: antix@elitesecurity.org


Profil

icon Re: kako da napisem ovaj upit za brisanje?15.03.2004. u 14:17 - pre 243 meseci
da, znam da bi bilo lakse da se prestruktuiraju tabele ali me konkretno zanima
kako biste vi uradili ovo bas za ovaj slucaj. Cisto iz radoznalosti!!!

poz
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: kako da napisem ovaj upit za brisanje?15.03.2004. u 15:02 - pre 243 meseci
Iz MySQL Manuala:
Code:
DELETE [LOW_PRIORITY | QUICK] table_name[.*] [table_name[.*] ...]
FROM table-references
[WHERE where_definition]

... što bi u ovom slučaju bilo (ako je sifra1 za brisanje 2):
Code:
DELETE tabela1, tabela2, tabela3
FROM tabela1, tabela2, tabela3
WHERE tabela1.sifra1 = '2'
  AND tabela1.sifra1 = tabela2.sifra1
  AND tabela2.sifra2 = tabela3.sifra2

Čisto iz radoznalosti - i mene interesuje da li radi - testiraj pa javi ;)
 
Odgovor na temu

antix

Član broj: 8388
Poruke: 265
*.mobtel.com

Jabber: antix@elitesecurity.org


Profil

icon Re: kako da napisem ovaj upit za brisanje?15.03.2004. u 23:02 - pre 243 meseci
Ovaj upit je korektan. Isproban i radi!!! Hvala ti, to mi je trebalo....
 
Odgovor na temu

[es] :: MySQL :: kako da napisem ovaj upit za brisanje?

[ Pregleda: 1665 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.