![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Powinno zwrócić rekordy, które w polu 'href' mają taką samą wartość, a zwraca wszystkie rekordy ! Wcześniej mi to działało raczej i nie wiem o co chodzi. W tabeli 'test_1' są na pewno zdublowane wiersze (identyczna zawartość 'href'). Struktura tabeli wygląda tak: Kod id int(11) href text checked tinyint(1) status tinyint(1) Co robie źle ![]() Ten post edytował Ociu 8.08.2008, 05:49:13
Powód edycji: dodałem bbCode (ociu)
-------------------- Free mp3 download.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
w podselect zwracasz href, a w warunku sprawdzasz id. PRzeciez to dwie rozne kolumny.
Cytat Powinno zwrócić rekordy, które w polu 'href' mają taką samą wartość, a zwraca wszystkie rekordy Ze niby ktora czesc zapytania ma to robic? Distinct usuwa zdublowany rekordy a nie zwraca rekordy ktore mają taką samą wartosc
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Całe to zapytanie miało zwrócić część wspólną (rekordy powtórzone przynajmniej raz).
Zmieniłem to id na href:
i dalej jest lipka - zwraca pusty wynik a jak mówie napewno sa powtó¶zone rekordy, tzn kilka rekordów ma napewno taką samą wartość w polu href. -------------------- Free mp3 download.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ale ty nadal nie rozumiesz...
pozdaytanie zwraca ci wszystkie href a w zapytaniu glownym chcesz by zwrocil ci rekordy, ktorych href nie ma w podzapytaniu. Ale w podzapytaniu są wszystkie href wiec w rezultacie dostajesz nic. Naprawde tego nie rozumiesz? Przetraw to na spokojnie A jak chcesz pobrac href, ktore występuja tylko raz, to uzyj group by i count Cytat Całe to zapytanie miało zwrócić część wspólną (rekordy powtórzone przynajmniej raz). Do tego tez uzyj group by i count ![]() zreszta masz linka: Temat: Wybranie powtarzajacych sie danych w kolumnie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
mniej więcej rozumiem, ale dlaczego podzapytanie: SELECT DISTINCT href FROM `test_1`
zwraca mi wszystkie wiersze ? DISTINCT powinno zwrócić wszystkie wiersze z pominięciem tych które są zdublowane, więc czemu działa tak samo jak: SELECT href FROM `test_1` ![]() Proszę, zmodyfkuj ten kod tak jak Ty byś to zrobił, żeby osiągnąć efekt o który mi chodzi. -------------------- Free mp3 download.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
podalem ci rozwiązanie, podalem ci linka gdzie masz to zrobione. skorzystaj.
Olej distinct bo widze wogole nie trawisz co sie do ciebie mowi. Juz ci to wyjasnilem w poprzednim poscie dlaczego ci nie dziala a ty dalej by to wyjasniac.... ![]() edit: Cytat SELECT DISTINCT href FROM `test_1` On nie zwraca wszystkich wierszy, a wszystkie href - to jest subtelna roznica. Ale ty potem w glownym zapytaniu i tak lecisz po href, wiec de fakto nic nie dostajesz bo wykluczasz wszystkie href
zwraca mi wszystkie wiersze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
podalem ci rozwiązanie, podalem ci linka gdzie masz to zrobione. skorzystaj. Sory nie zauważyłem. [quote] Olej distinct bo widze wogole nie trawisz co sie do ciebie mowi. Juz ci to wyjasnilem w poprzednim poscie dlaczego ci nie dziala a ty dalej by to wyjasniac.... ![]() (...) On nie zwraca wszystkich wierszy, a wszystkie href - to jest subtelna roznica. Ale ty potem w glownym zapytaniu i tak lecisz po href, wiec de fakto nic nie dostajesz bo wykluczasz wszystkie href [quote] No, ale nie wyjaśniłeś dlaczego ten distinct w podzapytaniu zwraca wszystkie href a nie pomija tych które są zdublowane. NIe chce się na siłe upierać przy czymś, ale mi to wcześniej jak najbardziej działało z tym, że wtedy to była inna tabela i tam po id jechałem, ale zwracało mi powtarzające się rekordy, dlatego nie wiem gdzie konkretnie tkwi błąd. Odesłałeś mnie do innego sposobu, ale chyba możesz mi przerobić tą linijkę z tym distinctem na taką która by działała ;D -------------------- Free mp3 download.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat No, ale nie wyjaśniłeś dlaczego ten distinct w podzapytaniu zwraca wszystkie href a nie pomija tych które są zdublowane. Bo tak dziala distinct!!ala ala ola Zrobienie distinct po tym zroci ci: ala ola czyli zwraca wszystkie imiona, pomijajac duplikaty Teraz w glownym zapytaniu wykluczasz ala i ola czyli defacto wykluczasz wszystko!! Sorki za wykrzykniki ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
No i właśnie o to mi chodziło, że ten distinct
ala ola ola zwracał mi to samo i dlatego tak sie denerwowałem i marudziłem ![]() Teraz jak sprawdzam to już jest ok, więc nie wiem czy coś źle wpisałem czy jakiś dziwny cache czy co, bo naprawdę nie usuwał mi zduplikowanych wierszy ![]() Więc SELECT DISTINCT href FROM `test_1` wkońcu ładnie usuwa mi duplikaty i mam same uniq, ale w taki razie jak teraz wybrać tylko te, których nie ma w tym zapytaniu ?
Proszę tylko o przerobienie tego kodu i już kończe posta ;-) PLZ -------------------- Free mp3 download.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz, ten fragment zapytania
wybiera ci WSZYSTKIE! rekordy z test_1, ALE w ten sposób, że te co występują wielokrotnie w tabeli zwracane są tylko raz. Jak już wybierze WSZYSTKIE te rekordy z tabeli test_1 to masz taki warunek, żeby
czyli tak naprawdę żeby href nie był równy ŻADNEMU wcześniej wybranemu. Ty za pomocą ostatniego selecta wybrałeś wszystkie rekordy, z pominięciem tyko tych co się powtarzają. A więc to całe zapytanie słownie ![]()
PS: ale masz streszczenie ![]() Ten post edytował kaem 12.08.2008, 17:50:50 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za łopatologiczne wyjaśnienie.
Wkońcu komuś udało się wytłumaczyć mi tą sprawę :-) W takim razie ten distinct tak naprawdę zwraca wszystkie wyniki, tylko pomija zdublowane rekordy i ich nie wyświetla ale je zawiera a tego nie wiedziałem.
Już jest praktycznie ok, z tym że jak 'coś' powtarza mi się np 3 razy to ja dostaje tylko 1 wynik, a chciałbym dostać 2 (wszystkie poza 1, żebym widział, wszystkie wiersze, które są do wywalenia). -------------------- Free mp3 download.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 18:35 |