Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie z kilku tabel naraz
Forum PHP.pl > Forum > Bazy danych > MySQL
Omega
Jak usunąć dane z kilku tabel naraz, poruwnując jedno pole, np coś takiego:

DELETE tab1,tab2 FROM tab1,tab2 WHERE tab1.id=tab2.id AND tab2.value="2"

Patrzyłem w manualu ale przykłady nie działają, a Mam najnowszą wersję mysql
sticker
Cytat(Omega @ 2005-08-05 22:38:36)
Jak usunąć dane z kilku tabel naraz, poruwnując jedno pole, np coś takiego:

DELETE tab1,tab2 FROM tab1,tab2 WHERE tab1.id=tab2.id AND tab2.value="2"

Patrzyłem w manualu ale przykłady nie działają, a Mam najnowszą wersję mysql

pokaż jakie masz pola w tab1 i tab2 i które pola chcesz usunąć z tamtad, całą kotke czy tylko jakies dane z pewnej kolumny bo mi sie nie podoba ta skłądnia...

przykład... nie wiem nie testowałem i dawne sie sqlem nie bawiłem wiec nie wiem czy to przejdzie a nie mam gdzie zrobić testu
  1. DELETE *
  2. FROM tab1,tab2 WHERE tab1.id=tab2.id AND tab.value=2;

w miejsce * mozesz wrzucic nazwy kolumn ktore chcesz skasować
A i Jeżeli porównujesz liczby całkowite dawaj bez nawiasów działa to szybciej, jak porównujesz string to cudzysłowia albo apostrofy są juz niezbędne..

Pozdrowienia
btw . ortografia
Omega
ehhh... dzięki wielkie ale nie wniosłeś nic konkretnego. wiem że problem z ortografią i wiem że to zapytanie nie działa, pozatym... po co dajesz coś czego nie testowałeś? Ja nie sprawdzałem swojego posta więc sory za błędy...
mhs
witaj

1) na nastepny raz napisz dokladnie jaka masz wersje mysql (najnowsza z serii 4.1 czy moze najnowsza z serii 5, a moze jeszcze 4.0) - w przypadku tego co Ty sa roznice pomiedzy tymi wersjami wiec dobrze byloby znac na przyszlosc dokladna wersje wykorzystywanego przez Ciebie systemu zarzadzania baza danych

2) prawdę powiedziawszy czy do konca o to Tobie chodzi ale ponizszy przyklad dziala prawidlowo:

a) zakladamy, ze mamy nastepujace tabele

  1. CREATE TABLE Table_01 (
  2. id_1 INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. nazwa_1 VARCHAR(64) NULL,
  4. PRIMARY KEY(id_1)
  5. );
  6.  
  7. CREATE TABLE Table_02 (
  8. id_2 INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  9. nazwa_2 VARCHAR(64) NULL,
  10. PRIMARY KEY(id_2)
  11. );



b ) nastepnie wprowadzamy do niej jakies dane


c) zapytanie usuwajace rekordy sobie odpowiadajace w tych dwoch tabelach jest nastepujace:
  1. DELETE table_01, table_02
  2. FROM table_01, table_02 WHERE table_01.id_1 = t
  3. able_02.id_2;


ten przyklad ktory tutaj dodalem jest wg. mnie troche dziwny i raczej malo sensowny jezeli chodzi o sam projekt ale mam nadzieje, ze dzieki temu udalo mi sie odpowiedziec na Twoje pytanie; o kolejne warunki w zapytaniu moj przyklad nie trudno juz rozwijac
Omega
Dzięki za odpowiedź, ale spójrz na przykładowy kod który napisałem, to właściwie to samo... a u mnie nie działało, także niestety.
mhs
Cytat(Omega @ 2005-08-09 02:45:50)
Dzięki za odpowiedź, ale spójrz na przykładowy kod który napisałem, to właściwie to samo... a u mnie nie działało, także niestety.

a mozesz podac strukture bazy danych, przykladowe dane ktore sa w niej umieszczone? mozesz w koncu odpowiedziec na pytanie dotyczace dokladnej wersji mysql'a? a takze jak blad Ci sie ukazuje?

nie jestem wrozka i w sposob, ktory Ty przedstawiasz problem raczej nie bede Ci mogl pomoc gdyz po prostu za malo napisales.

pozdrawiam.
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.