![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
Jak w jednym zapytaniu usunąć dane z wielu tabel na podstawie warunku z jednej tabeli.
Wszystkie są powiązane jednym ID. Sprawdzam warunek w jednej tabeli i usuwam wszystkie o danym ID. Od razu zaznaczam: nie chcę używać usuwania kaskadowego! -------------------- kOskiToS :D
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
http://dev.mysql.com/doc/refman/5.1/en/delete.html
Na dole masz o to taki przyklad
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
To nie działa.
Ja stawiam warunek w jednej tabeli i chce usunąć z wszystkich (ale nie w każdej jest taki rekord). W Twoim przykładzie, delete usunie jeżeli warunek zostanie spełniony i jeżeli we wszystkich tabelach będzie rekord o danym id. Chyba rozumiesz mnie. EDIT: Temat nadal aktualny. Rozwiązanie jest mi bardzo potrzebne, więc nadal czekam na odpowiedzi! Ten post edytował koskitos 28.09.2006, 14:38:16 -------------------- kOskiToS :D
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Mozesz pokazac na konkretnym przykladzie bo nie zrozumialem czy chodzi Ci o left join czy jeszcze inne rzeczy.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
Załóżmy mam tabele:
I teraz chce usunac wszystkich uzytkownikow, ktorzy nie odwiedzali mojej strony w ciągu ostatnich 2 lat. Chcę usunąć o nim wszelkie informacje z wszystkich tabel EDIT Jest mi to nadal, a naprawdę bardzo potrzebne. Bardzo proszę o pomoc. Nie wierzę, że nie wiecie! Ten post edytował koskitos 4.10.2006, 16:11:20 -------------------- kOskiToS :D
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował thornag 4.10.2006, 16:36:37 -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
Mój drugi post
Zadziała, jeżeli w każdej tabeli jest rekord o jakimś ID. Jeżeli chociaż w jednej tabeli nie bęzie rekordu, to nie zadziałą. -------------------- kOskiToS :D
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Na moje to on wezmie wszystkie rekordy z user gdzie data jest sprzed dwoch lat. Pozniej korzystajac z usyskanych id pojdzie do nastepnej tabeli znajdzie rekordy pasujace usunie je. Pozniej nastepna tabela usunie i na koncu usunie sam siebie
![]() -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
Twój kod ma takie samo działanie jak SongoQ.
Próbowałem takiego rozwiązania przed założeniem tematu. Aby Ci rozjaśnić umysł: jeżeli w tabeli USERS istnieje rekord o ID = 3, a w żadnej innej tabeli nie ma rekordu i ID = 3, pomimo iż warunek został spełniony ten rekord nie zostanie usunięty. -------------------- kOskiToS :D
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
To też nie działa.
Wy nie widzicie nielogiki waszych kodów. Rekordy zostaną usunięte jeżeli pole równe jest jakiemuś polu i jakieś pole jest równejakiemuś polu. A jeżeli pole nie istnieje? Myślałem o LEFT JOIN, ale coś nie wychodzi mi. :/ Ten post edytował koskitos 4.10.2006, 16:57:25 -------------------- kOskiToS :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 03:20 |