Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: usuniecie rekordow z jednej tabeli
Forum PHP.pl > Forum > Bazy danych
koskitos
Mam dwie tabele. Chce usunac rekordy z jednej tabeli, ale na podstawie dwoch tabel.

Czyli mowiac nawiasem chcialbym uzyc formuly:
  1. DELETE
  2. FROM tabela1 WHERE tabela1.pole1=tabela2.pole2
Każdy wie, że ta forumula jest niepoprawna, ale chce pokazac o co mi chodzi.

Inaczej mowiac chce usunac rekordy z tabeli, ale wyzaczyc te rekordy moge jedynie przez wybranie ich na podstawie wielu tabel.

Jak to zrobic? Myslalem o wyciagnieciu samych rekordow, a potem w petli pokolei usuwac kazdy rekord... Ale to niewygodne i w tym wypadku moglbym uzyc baardzo duzo zapytan.

Slyszalem o wyciaganiu rekordow do tablicy, czy obiektu, a potem przekazaniu go do drugiego zapytania.

A moze znacie inny lepszy sposob?
SongoQ
Chyba chodzi Ci o cos takiego

  1. DELETE
  2. FROM tabela WHERE pole IN (SELECT pole
  3. FROM tabela2 WHERE ........)
koskitos
OKI, spoko. A jezeli mam usunac dane z dwoch tabel?
Zaznaczam, ze jak usune dane z jednej tabeli, to zapytanie w IN() nie zwroci tych samych rekordow podczas kolejnego usuwania z drugiej tabeli.
SongoQ
Przyklady np do Mysql masz w dokumentacji
http://dev.mysql.com/doc/refman/4.1/en/delete.html
koskitos
spoko, dzieki ze mnie naprowadziles. biggrin.gif
poprostu nie wiedzialem, ze mozna w delete podac dwie tabele tongue.gif
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.