Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Unikalność rekordów, Jedna tabela i wyszukiwanie unikalnych rekordów
banana
post
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
  1. GROUP BY miasto
- ale wtedy jest szansa, że ulice będa takie same

dziękuję,

Banana

Ten post edytował banana 28.03.2012, 09:56:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markonix
post
Post #2





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).
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Cytat(markonix @ 28.03.2012, 11:16:25 ) *
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:
  1. SELECT `miasto`, `ulica` FROM `tabela` GROUP BY `ulica` HAVING COUNT(*) = 1
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Cytat(mortus @ 28.03.2012, 11:33:52 ) *
@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
Go to the top of the page
+Quote Post
banana
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 29.09.2010

Ostrzeżenie: (0%)
-----


Dzięki (IMG:style_emoticons/default/smile.gif)
Cytat(mortus @ 28.03.2012, 11:49:00 ) *
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
  1. GROUP BY miasto LIMIT 3
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ę :|
Cytat(mortus @ 28.03.2012, 11:59:20 ) *
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
Go to the top of the page
+Quote Post

Posty w temacie
- banana   Unikalność rekordów   28.03.2012, 09:35:05
- - mortus   [SQL] pobierz, plaintext SELECT DISTINCT `miasto`,...   28.03.2012, 09:47:30
|- - banana   dziekuję za odpowiedź Cytat(mortus @ 28.03.2...   28.03.2012, 10:00:59
- - markonix   Proponuje nadać indeks unikalny na pole miasto i u...   28.03.2012, 10:16:25
|- - banana   Dziekuję za odpowiedź Cytat(markonix @ 28.03...   28.03.2012, 10:25:06
|- - mortus   Cytat(markonix @ 28.03.2012, 11:16:25...   28.03.2012, 10:33:52
|- - mortus   Cytat(mortus @ 28.03.2012, 11:33:52 )...   28.03.2012, 10:49:00
|- - banana   Dzięki Cytat(mortus @ 28.03.2012, 11:49...   28.03.2012, 11:04:50
- - markonix   Dlatego mówiłem O JEDNYM KLUCZU PODWÓJNYM czyli na...   28.03.2012, 10:34:00
- - banana   Dziękuję za odpowiedź w bazie nie ma zdublowanych...   28.03.2012, 10:38:29
- - alegorn   troche do bani podejscie, nie przemyslane. nie pr...   28.03.2012, 10:47:00
|- - banana   dziekuję za odp Cytat(alegorn @ 28.03.2012, ...   28.03.2012, 10:53:18
- - markonix   Te kilka Warszaw to wsie czy wioski. Jestem ciekaw...   28.03.2012, 10:52:11
- - mortus   Panowie, ale w ogóle nie ma o czym gadać. Weźmy pr...   28.03.2012, 10:59:20
- - mortus   Tak, tylko co ma zadecydować o tym, jakie to będą ...   28.03.2012, 11:10:53
|- - banana   Cytat(mortus @ 28.03.2012, 12:10:53 )...   28.03.2012, 11:28:32
- - Crozin   Da się przy pomocy czegoś takiego:[SQL] pobierz, p...   28.03.2012, 11:15:57
- - Crozin   Dodaj na końcu LIMIT?   28.03.2012, 11:29:37
- - banana   tak dokładnie - LIMIT dziekuje wam bardzo - szcze...   28.03.2012, 11:36:36


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

 



RSS Aktualny czas: 16.10.2025 - 10:38