Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z odpowiednim zapytaniem SQL
Dawid Pytel
post
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 smile.gif)
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 sad.gif
Byłbym wdzięczny gdyby ktoś z Was mógł mnie przynajmniej naprowadzić, którymi funkcjami SQLa się zainteresować.

Pozdrawiam


--------------------
Ez Partner :]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Dawid Pytel
post
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 rolleyes.gif


--------------------
Ez Partner :]
Go to the top of the page
+Quote Post
scanner
post
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]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
lukaswoj
post
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ą smile.gif
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.


--------------------
Pozdrawiam
Łukasz Wojciechowski
New Generation Software
+48 602 214 629
http://www.ngsoft.pl
Go to the top of the page
+Quote Post
BzikOS
post
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]
Go to the top of the page
+Quote Post
lukaswoj
post
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.


--------------------
Pozdrawiam
Łukasz Wojciechowski
New Generation Software
+48 602 214 629
http://www.ngsoft.pl
Go to the top of the page
+Quote Post
Dawid Pytel
post
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 smile.gif


--------------------
Ez Partner :]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:31