Post
#1
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
To chyba prosty problem, ale coś nie wiem, jak to zrobić...
Jak stworzyć zapytanie, umożliwiajace usunięcie wszyskich wpisów z tabeli, dla których nie istnieje rodzic, tj. został usuniety? Na zasadzie zwiazku: tabela potomków: id, id_rodzica, dane... tabela rodziców: id, dane... |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%)
|
Cytat Zapytanie:
Cytat DELETE FROM produkty
jest co prawda poprawne, ale usuwa 0 rekordów, choć zapytanie typu: USING produkty, kategorie WHERE kategorie.id = produkty.kat and kategorie.id IS NULL Cytat SELECT produkty. * , kategorie. *
FROM produkty LEFT JOIN kategorie ON kategorie.id = produkty.kat WHERE kategorie.id IS NULL wyświetla wszystkie potrzebne rekordy. Odpowiedz jest prosta - to NIE SA takie same zapytania. W pierwszym przypadku wybierasz te wiersze ktore MAJA swoje odpowiedniki w drugiej tabeli, po czym usilujesz skasowac te ktore nie maja idkow, a przy takim warunku one oczywiscie odpadna w przedbiegach (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Natomiast w drugim wybierasz WSZYSTKIE wiersze z pierwszej tabeli, po czym doklejasz ewentualne wiersze z drugiej - i tu moga sie pojawic juz nule w drugiej tabeli. A rozwiazanie zadania jest takie: Cytat DELETE FROM produkty
USING produkty LEFT JOIN kategorie ON produkty.kat = kategorie.id WHERE kategorie.id IS NULL |
|
|
|
DeyV [sql] usuwanie z tabeli 13.05.2003, 09:52:34
HaRy jednym zapytankiem chyba nie mozna tego zrobic 13.05.2003, 19:00:44
Jabol a może coś takiegoKodDELETE FROM dzieci WHERE id_r... 13.05.2003, 19:32:04
DeyV To by było za proste.
I chyba jescze nie ma wersj... 13.05.2003, 20:04:26
Jabol to czemu nie mówisz, że to do mysql'a? 13.05.2003, 20:21:00
uboottd Dwa rozwiazania MySQLowe:
1. Przejdz na tabele In... 15.05.2003, 10:09:56
dragossani Może zaliasować tabelę i zrobić left-join dzieci-... 15.05.2003, 13:24:00
DeyV W manulau znalazłem taką konstrukcję: CytatDELETE ... 15.05.2003, 15:23:54
DeyV Dzięki. Próbowałem juz tyle kombinacji, że do tego... 22.05.2003, 14:17:07 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 20:37 |