![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 21.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego w tym zapytanie nie bierze mi pod uwagę sortowania? Wydaje sie ze jest wszystko dobrze a jednak zle bo nie sortuje.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 1 Dołączył: 10.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Czy produkt.id jest unikatowe? Domyślam się, że to klucz główny... Czy tak rzeczywiście jest?
Jeśli w tabeli produkt mamy kolumnę id i każdy jej rekord jest unikatowy, to jaki jest sens stosowania GROUP BY na tej kolumnie? Może chciałeś tam wpisać GROUP BY produkt.nazwa?! Zrobiłem 2 przykładowe tabele (coś jak u Ciebie) i wszystko działa tak jak powinno. Oczywiście ja pytałem o coś innego -chciałem wyłonić ilość produktów o identycznej nazwie oraz których nazwa jest w tabeli "kategoria".
W wyniku mam:
Jak widać działa zgodnie z zamierzeniem. Pytanie czego Ty tak naprawdę oczekiwałeś po swoim zapytaniu. Podsumowując uważam, że błąd jest po klauzuli GROUP BY -mam nadzieję, że to pomoże P.S. Radzę stosować aliasy. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 21.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dałam GROUP BY bo nie wiadomo czemu zapytanie zwracając mi wynik powtarza niektóre rekordy po pare razy. Wiesz może dlaczego?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 1 Dołączył: 10.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zwraca ponieważ jest ich wiele -zastosuj distinct, który eliminuje duplikaty.
Ewentualnie przedstaw strukturę tabel produkt, produkt_kategoria oraz to czego konkretnie oczekujesz od zapytania, a ja pomogę Ci napisać to zapytanie poprawnie. Chyba, że distinct rozwiąże sprawę... P.S. Odradzam pisania zapytań sql na zasadzie prób i błędów. Musisz dokładnie wiedzieć czego od niego oczekujesz i co to zapytanie zwróci. Jeżeli będziesz strzelał to faktycznie może zadziałać ...na jakiś czas, a po kilku miesiącach wyskoczy problem, którego nie będziesz w stanie zdiagnozować (może to coś z bazą, może to coś z aplikacją, a może...). Pozdrawiam |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 21.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
produkt
--------- id nazwa cena opis ogladalnosc dostepne produkt_kategoria ------------------- id kategoria_id produkt_id kategoria ---------- id nazwa i chce wyświetlić produkt.id, produkt.nazwa, produkt.cena, produkt.opis, produkt.ogladalnosc, produkt.dostepne dla produktów które zawierają jakiś tekst w nazwie lub opisie oraz są przypisane do wybranej kategorii |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 1 Dołączył: 10.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Cytat które zawierają jakiś tekst w nazwie lub opisie Czy chodzi o tekst jako litery a nie same cyfry? Czy chodziło Ci o to, że po prostu nie może być to wartość NULL (czyli pole nie może być puste)? A może jednak (na co wskazuje Twoje wcześniejsze zapytanie do bd) chodzi o wskazanie tekstu, który powinien w nich występować np. "at" -niezależnie czy będzie to "automAT", "laminAT", "ATrament", "hp AT3432", ... I żeby nie przeciągać sprawy napiszę jak to powinno wyglądać przy założeniach: 1) poszukujemy wszystkiego z tabeli produkt a ) gdzie: nazwa zawiera dwie litery "a" w kupie -np. "taat" LUB opis zawiera "ola" czyli np. "Cola light". b ) ORAZ: id danego produktu (tego, który przeszedł weryfikację w punkcie a) znajduje się w tabeli produkt_kategoria
pozdrawiam Ten post edytował grzegorz_m 17.12.2008, 12:03:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 1.10.2025 - 07:02 |