![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z pewnym zapytaniem. Mam tabele zawierajaca kilka kolumn, z czego w jednej kolumnie wiersze sie powtarzaja. Chcialbym aby zapytanie zwrocilo mi tylko po jednym wierszu dla kazdej wartosci. Bardzo prosze o pomoc. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A ktory z wierszy ma zwracac dla kazdej z wartosci [jak sa np 4ry to ktory ma wybrac??]?
No chyba ze chcesz wyciagnac tylko TA jedna kolumne. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
dzieki,
tylko jeszcze jedna rzecz, jesli napisze Kod SELECT DISTINCT kolumna FROM tabela to dostane tylko ta jedna kolumne z unikalnymi wierszami, a mam sytuacje w ktorej jedna kolumna ma wszystkie wiersze unikalne wiec jesli napisze Kod SELECT DISTINCT kolumna_z_powtorzeniami, kolumna_bez_powtorzen FROM tabela to z kolei dostane powtorzone wartosci w kolumnie_z_powtorzeniami a to wlasnie unikalne wartosci tej kolumny mnie interesuja. Jest jakis sposob na to ?A ktory z wierszy ma zwracac dla kazdej z wartosci [jak sa np 4ry to ktory ma wybrac??]? No chyba ze chcesz wyciagnac tylko TA jedna kolumne. moze wybrac dowolny np. pierwszy Ten post edytował ronin 13.07.2008, 19:32:18 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Musisz pamiętać, że DISTINCT działa dla całych wyciąganych rekordów. Jeśli więc normalnie otrzymujesz dane:
Cytat a | a a | b a | c a | d b | a b | b to DISTINCT tak naprawdę nic Ci nie da ponieważ każdy z tych wierszy różni się od siebie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
No wlasnie. Zatem jest jakis sposob rozwiazania mojego problemu ?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ja osobiście nie do końca rozumiem Twój problem. Może podaj uproszczone dane otrzymywane zwykłym SELECTem oraz te, które chcesz otrzymać finalnie. Chyba w ten sposób będzie najłatwiej znależć skuteczne rozwiązanie.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Pytalem przeciez, na jakiek podstawie SQL ma wiedziec ktore kolmny_z_niepowtarzajacymi_sie_wartosciami ma dobrac.
Mozesz zrobic tak: select distinct kolumna_z_powtorzeniami...; i do tego dojoinwac ta tabele raz jeszcze, ew. wrzucic to w podzapytanie; ALE i tak musisz jakos wybrac ktory rekord zwrocic dla danej kolumna_z_powtorzeniami
ORDER BY r2.value DESC -- tu ustalasz ktory wiersz dostaniesz dla danej wartosci ktora DISTINCtujesz edit: no i SQLki do bazki:
Ten post edytował dr_bonzo 13.07.2008, 20:27:13 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Tak ja pisali wyżej, nie wiemy które wartości z kolumna_bez_powtorzen są dla Ciebie istotne. Możesz zrobić np. tak:
Zmiast MAX możesz podstawić inne, np. MIN, AVG. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Bez MAX/MIN/.. tez zadziala [ale GROUP musi zostac]
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak ja pisali wyżej, nie wiemy które wartości z kolumna_bez_powtorzen są dla Ciebie istotne. Możesz zrobić np. tak: Zmiast MAX możesz podstawić inne, np. MIN, AVG. Nie przeczytaliscie chyba tego co napisalem wczesniej, odpowiedzialem juz na to pytanie, moze sie zle wyrazilem. Sprobuje na przykladzie: AdresWWW | AdresIP www.subdomena1.domena1.pl | 83.12.14.5 www.subdomena2.domena1.pl | 83.12.14.5 www.subdomena1.domena2.pl | 83.12.14.6 www.subdomena2.domena2.pl | 83.12.14.6 www.subdomena3.domena2.pl | 83.12.14.6 www.subdomena1.domena3.pl | 83.12.14.12 a chce zwrocic cos takiego: AdresWWW | AdresIP www.subdomena1.domena1.pl | 83.12.14.5 www.subdomena1.domena2.pl | 83.12.14.6 www.subdomena1.domena3.pl | 83.12.14.12 czyli mamy sytuacje w ktorym na dany serwer www wskazuje kilka adresow www i mnie nie interesuje ktory adres www zostanie zwrocony, interesuje mnie tylko to, zeby otrzymac wszystkie adresy IP z przypisanymi im adresami www. Jesli bedzie 10 roznych adresow www pokazujacych 10 razy na ten sam adres IP to chce w wyniku otrzymac ten adres IP i jedna dowolna domene ktora na niego pokazuje, nie ma znaczenia ktora. Pozdrawiam |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No to w czym problem?
i juz ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
MS SQL Server 2000 Query Analyzer:
Cytat Column 'Tabela.www' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. w tym. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
na przyszlsoc w tagu tematu okreslaj jaka to baza danych.
Ja pisalem zapytanie dla mysql ![]() a najlepiej wkladaj do wlasciwego dzialu... na MS SQL jest wlasciwy dzial -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 13.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
bede pamietal na przyszlosc
![]() ale teraz bardzo chcialbym rozwiazac ten problem ![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A moj kod nie dziala? http://forum.php.pl/index.php?s=&showt...st&p=492919
Co prawda dla mysql, ale sobie przepiszesz. -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:18 |