![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem ze stworzeniem zapytania SQL do poniższego problemu. Otóż mam tabelę PRODUKTY Kod PRODUKTY
id | symbol | nazwa rekordy w tabeli do produkty. Produkty te mogą się powtarzać, np Kod 1 | "OBR001" | "Obrecz do kola 1"
2 | "OBR002" | "Obrecz do kola 2" 3 | "OBR001" | "Obrecz do kola 1" i pojawił się pewien problem. Do bazy dodane zostały produkty o tych samych symbolach ale różnych nazwach (co nie może mieć miejsca ![]() Teraz OBR001 do obrecz i rama rowerowa. Chciałbym wypisać w SQLu rekordy, które mają te same symbole ale różne nazwy. Próbowałem na wiele sposobów jednak bez większych sukcesów ![]() Byłbym wdzięczny gdyby ktoś z Was mógł mnie przynajmniej naprowadzić, którymi funkcjami SQLa się zainteresować. Pozdrawiam -------------------- Ez Partner :]
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Trudno, jakoś sobie poradziłem. Niestety, musiałem użyć do etgo większej ilości zapytań. Kto wie, może da się stworzyć odpowiednie zapytanie, które wszystko ładnie wyświetli... mi się nie udało
![]() -------------------- Ez Partner :]
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
poszukaj o (jełśi mnie pamięc nie myli) [sql:1:b0ff4edaba]GROUP BY[/sql:1:b0ff4edaba]
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 2.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
scanner: wydaje mi się, że Dawid nie uzyska tego o co mu chodzi za pomocą[sql:1:c7cec91245]GROUP BY[/sql:1:c7cec91245]
Dawid: Mmyślę, że musisz połączyć tabelę samą ze sobą ![]() Czyli coś takiego: [sql:1:c7cec91245] SELECT * FROM PRODUKTY as a, PRODUKTY as b WHERE a.symbol=b.symbol AND a.nazwa!=b.nazwa [/sql:1:c7cec91245] Dostaniesz z tego zapytania podwójną ilość rekordów, ale to chyba będzie to co Ci chodziło. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
No można i pojedyncza ilość rekordów:
[sql:1:868c37e31f]SELECT a.id, a.symbol, a.nazwa FROM PRODUKTY AS a, PRODUKTY AS b WHERE a.symbol=b.symbol AND a.nazwa!=b.nazwa[/sql:1:868c37e31f] |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 2.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
BzikOS: Nie chodziło mi o dublowanie pól tylko o dublowanie wierszy.
Zobrazuje to o co mi chodzi: Kod id nazwa1 nazwa2 id nazwa1 nazwa2
5 OBR001 Druga rama rowerowa 1 OBR001 Obręcz 1 5 OBR001 Druga rama rowerowa 2 OBR001 Obręcz 1 1 OBR001 Obręcz 1 5 OBR001 Druga rama rowerowa 2 OBR001 Obręcz 1 5 OBR001 Druga rama rowerowa Tutaj widać że dwa pierwsze wiersze są jakby "tym samym" co dwa ostatnie - przynajmniej jeśli będziemy na nie patrzyć pod kątem takim o jaki chodziło Dawidowi. Swoją drogą ciekawe jak te wiersze nadmiarowe wyeliminować z poziomu SQL'a, ale wg mnie w tym przypadku sie nie da. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje Wam za pomoc. Faktycznie najlepszą wskazówką było 'skopiowanie' tabeli i działanie na tym.
Oczywiście wiersze z poszukiwanymi rekordami zostają powielone dlatego dla mnie wystarczy zastosować DISTINCT symbol aby wyciągnąć interesujące mnie symbole. Wprawdzie wcześniej rozwiązałem ten problem stosując dla każdego symbolu odpowiednie zapytanie jednak produktów w bazie mam kilka tysięcy więc to będzie o wiele szybsze. Jeszcze raz dziękuje ![]() -------------------- Ez Partner :]
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:31 |