![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
witam,
mam tabelę (i nie może być ich więcej...) w której są MIASTO|ULICA NP: KARAKÓW|KRAKOWSKA KARAKÓW|WARSZAWASKA KARAKÓW|ZIEMOWITA WARSZAWA|KRAKOWSKA WARSZAWA|WARSZAWASKA WARSZAWA|PSZCZYŃSKA ŁÓDŹ|KRAKOWSKA ŁÓDŹ|WARSZAWASKA ŁÓDŹ|ŁÓDZKA chce wybrać powiedzmy 3 rekordy ze wszystkich, tak by miasto i ulica się nie powtarzały w wyniku zapytania czyli naprzykład: KARAKÓW|WARSZAWASKA WARSZAWA|PSZCZYŃSKA ŁÓDŹ|KRAKOWSKA Chcę wybrać tylko unikalne rekordy zarówno pod względem miasta jak i ulicy, próbuje grupować rekordy po mieście - ale wtedy jest szansa, że ulice będa takie same dziękuję, Banana Ten post edytował banana 28.03.2012, 09:56:34 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
albo
EDIT: Nie wiem, czy kolega rozumie, co to jest unikalność rekordu. W podanym wyżej przykładzie każdy rekord jest unikalny, bo nie ma dwóch identycznych wartości zarówno w kolumnie `miasto`, jak i w kolumnie `ulica` jednocześnie. Ten post edytował mortus 28.03.2012, 09:50:39 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
dziekuję za odpowiedź (IMG:style_emoticons/default/smile.gif)
Nie wiem, czy kolega rozumie, co to jest unikalność rekordu. W podanym wyżej przykładzie każdy rekord jest unikalny, bo nie ma dwóch identycznych wartości zarówno w kolumnie `miasto`, jak i w kolumnie `ulica` jednocześnie. Chcę wybrać tylko unikalne rekordy zarówno pod względem miasta jak i ulicy przepraszam może niezbyt wyraźnie to napisałem - poprawiłem opis, przy okazji czysty DISTINCT nie zadziała - sprawdzone, group by tak samo mi nie wychodzi... Ten post edytował banana 28.03.2012, 10:06:09 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Proponuje nadać indeks unikalny na pole miasto i ulica (jeden).
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
Dziekuję za odpowiedź (IMG:style_emoticons/default/smile.gif)
Proponuje nadać indeks unikalny na pole miasto i ulica (jeden). hm - niestety to nie możliwe - unikalne i incrementowalne jest id ja mam w tabeli (w której nie mogę nic zmienić): -miasta,ulicę, i firmę - która również może sie powtarzać (np. oddziały) -wiadomo, każde miasto może mieć tak samo nazwana ulicę -jeśli nadam unikalny indeks - nie będę mógł wprowadzić ponownie np. tego samego miasta... Ten post edytował banana 28.03.2012, 10:26:58 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
Proponuje nadać indeks unikalny na pole miasto i ulica (jeden). A co ma piernik do wiatraka. @banana: ty nie chcesz wybrać unikalnych rekordów pod względem zarówno miasta, jak i ulicy, ale chcesz wybrać takie ulice, które występują tylko w jednym mieście, a to zdecydowana różnica:
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Dlatego mówiłem O JEDNYM KLUCZU PODWÓJNYM czyli na dwóch kolumnach jednocześnie MIASTO + ULICA. Same miasto i sama ulica może się powtarzać.
Kluczy może być dużo, tutaj chodzi o optymalizacje oraz o zabezpieczenie przed dublowaniem rekordów, które nie powinny być zdublowane. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
Dziękuję za odpowiedź (IMG:style_emoticons/default/smile.gif)
w bazie nie ma zdublowanych rekordów miasto|ulica ps. nadałem taki indeks (IMG:style_emoticons/default/smile.gif) Ten post edytował banana 28.03.2012, 10:41:03 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%)
|
troche do bani podejscie, nie przemyslane.
nie przewidziales tego ze miasta nie sa unikatem w polsce, jest np. kilka warszaw (IMG:style_emoticons/default/smile.gif) czysto teoretycznie moga miec takie same ulice (choc jedna) i co wtedy? zainteresuj sie bazami GUS (terc simc etc) j. edit index tez do bani, bo czy w bazie mozesz miec tylko jedna firme w jednym miescie przy jednej ulicy?? jesli juz, musisz zastosowac klucz zlozony, z wiekszej ilosci kolumn. Ten post edytował alegorn 28.03.2012, 10:50:01 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
@banana: ty nie chcesz wybrać unikalnych rekordów pod względem zarówno miasta, jak i ulicy, ale chcesz wybrać takie ulice, które występują tylko w jednym mieście, a to zdecydowana różnica Po namyśle stwierdzam, że jednak nie o to Ci chodzi. Chodzi o to, że to wybrane (a nie przeszukiwane) rekordy mają być unikalne pod względem zarówno miasta, jak i ulicy. Nie wiem, czy napisanie takiego zapytania jest w ogóle możliwe, bo wiązałoby się to z wybraniem jednego rekordu, później wybraniem drugiego rekordu i porównywaniem obydwu wybranych pod względem `miasta` i `ulicy`. Nie jest to raczej możliwe przy wykorzystaniu zwykłych zapytań, a trzeba by było napisać funkcję/procedurę korzystającą m. in. z instrukcji warunkowych MySQL. Przy czym nawet napisanie takiej procedury nie zagwarantuje Ci, że otrzymane wyniki będą zadowalające... przecież kombinacji może być baaaardzo dużo (jeśli nie nieskończenie wiele), a wszystko odbywało by się po części w sposób losowy, tj. uzależniony od pewnych specyficznych ustawień/właściwości silnika baz danych. Ten post edytował mortus 28.03.2012, 10:51:54 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Te kilka Warszaw to wsie czy wioski.
Jestem ciekaw czy faktycznie występuje taka sytuacja bo może urząd zajmujący się nadawaniem nazw ulic ma z góry założenie, że do takiej sytuacji nie może dojść. Może nawet mają bazę z unikalnym kluczem (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
dziekuję za odp (IMG:style_emoticons/default/smile.gif)
nie przewidziales tego ze miasta nie sa unikatem w polsce, jest np. kilka warszaw (IMG:style_emoticons/default/smile.gif) czysto teoretycznie moga miec takie same ulice (choc jedna) i co wtedy? no właśnie (IMG:style_emoticons/default/tongue.gif) (zdejmuję ten indeks (IMG:style_emoticons/default/smile.gif) ) no ale pozostaje pytanie - czy da się? |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
Panowie, ale w ogóle nie ma o czym gadać. Weźmy przykład autora:
BAZA DANYCH MIASTO|ULICA KARAKÓW|KRAKOWSKA KARAKÓW|WARSZAWASKA KARAKÓW|ZIEMOWITA WARSZAWA|KRAKOWSKA WARSZAWA|WARSZAWASKA WARSZAWA|PSZCZYŃSKA ŁÓDŹ|KRAKOWSKA ŁÓDŹ|WARSZAWASKA ŁÓDŹ|ŁÓDZKA Wynik jaki chce uzyskać autor: KARAKÓW|WARSZAWASKA WARSZAWA|PSZCZYŃSKA ŁÓDŹ|KRAKOWSKA Ale prawidłowym wynikiem będzie również: KARAKÓW|KRAKOWSKA WARSZAWA|WARSZAWASKA ŁÓDŹ|ŁÓDZKA Wątpię, aby jakikolwiek silnik bazodanowy poradził sobie z tym problemem, a wyniki będą całkowicie przypadkowe. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
Dzięki (IMG:style_emoticons/default/smile.gif)
Nie wiem, czy napisanie takiego zapytania jest w ogóle możliwe, bo wiązałoby się to z wybraniem jednego rekordu, później wybraniem drugiego rekordu i porównywaniem obydwu wybranych pod względem `miasta` i `ulicy`. Wydaje sie, że na początek można wybrać np. 3 miasta i do tych wyników dopasować selectem wewnętrznym ulice - ale jak - nie mam pomysłu - jedyna sprawa to php - tu raczej by się to udało - jednak 3 zapytania do bazy... Dziękuję :| Wątpię, aby jakikolwiek silnik bazodanowy poradził sobie z tym problemem, a wyniki będą całkowicie przypadkowe. rzeczywiście wyniki mogą być (na razie) przypadkowe i ja nie chcę (na razie) całej bazy łuskać w ten sposób tylko chciałbym wybrać 3 wyniki... (oczywiście można je oznaczyć jako wybrane i nie będą brane pod uwagę przy nastepnym selekcie) Ten post edytował banana 28.03.2012, 11:01:38 |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
Tak, tylko co ma zadecydować o tym, jakie to będą miasta? Porządek sortowania ustalony przez system baz danych? Własne sortowanie? A co z miastami ze środka tabeli, jak je wybrać? Kombinacji może być naprawdę baaaaaaaaaaaaaardzo dużo. Załóżmy, że w pierwszym zapytaniu wybierzesz Kraków, Warszawę i Łódź. A dlaczego nie miały by to być np. Wrocław, Poznań, czy Gdańsk? Zauważ przy tym, że pozostałe wyniki (wyniki kolejnych zapytań) w obu przypadkach mogą się zdecydowanie różnić i mogą posiadać wiele kombinacji.
Doszukiwałbym się raczej błędu w założeniach projektu, aniżeli rozwiązania przedstawionego problemu. |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
Tak, tylko co ma zadecydować o tym, jakie to będą miasta? ok - to nie istotne - ale np. ważność można określać poprzez wielkość miasta/liczbe ludności - jesli to w czymś może pomóc... czyli zaczynamy wibierać miasta od najwiekszększego, tą samą rolę może równiez spełniać ID rekordu (IMG:style_emoticons/default/wink.gif) Dziekuję Da się przy pomocy czegoś takiego: O ile wyniki powinny spełniać Twoje kryteria to jakie one będą same w sobie to już zupełnie inna bajka. w zasadzie bardzo ok, gdyby można tu jeszcze regulować ilość wyników 3-5 to mogłoby być to (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Dodaj na końcu LIMIT?
|
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.09.2010 Ostrzeżenie: (0%)
|
tak dokładnie - (IMG:style_emoticons/default/smile.gif) LIMIT
dziekuje wam bardzo - szczególnie Panu Crozin'owi (IMG:style_emoticons/default/smile.gif) temat można uważać za zamknięty jeszcze raz dzięki! Ten post edytował banana 28.03.2012, 11:40:44 |
|
|
|
![]() ![]() |
|
Aktualny czas: 15.09.2025 - 23:22 |