Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> distinct dla left join
php programmer
post 9.01.2008, 11:09:04
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Witam,

Mam zapytanie

SELECT ... LEFT JOIN

jako że z jedym wierszem głównej tabeli jest powiązanych kilka wierszy podrzędnej tabeli
łączonej za pomocą LEFT JOIN, w wyniku dostaje kika wierszy z głównej tabeli,

czy da się zrobić coś w rodzaju DISTINCT dla LEFT JOIN
Go to the top of the page
+Quote Post
kszychu
post 9.01.2008, 11:10:03
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Nie szybciej by było to sprawdzić samemu?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
php programmer
post 9.01.2008, 11:16:39
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Ale co sprawdzić?
Ja sie pytam jak zrobić coś takiego,

poza tym nie pozwala mi zrobić zwykłego DISTINCT po kolumnie pochodzącej z LEFT JOINa

Ten post edytował php programmer 9.01.2008, 11:23:44
Go to the top of the page
+Quote Post
jastu
post 9.01.2008, 11:34:47
Post #4





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Ale jak chcesz to połączyć ? Tabele bazową z piewszym wierszem który pasuje do warunku ON z tabeli dołączanej ?
Jeśli robisz jakiegoś COUNT'a to połączy bez dubli.


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
php programmer
post 9.01.2008, 11:56:21
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


dobra, rozwiązałem to już po swojemu,
problem jest na tyle nietypowy, że nie chce mi sie już was zamęczać,

PS. Count do left joina?

Ten post edytował php programmer 9.01.2008, 11:56:34
Go to the top of the page
+Quote Post
mefjiu
post 17.12.2008, 16:18:16
Post #6





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Mam dokładnie takie sam problem proszę o pomoc kogoś kto zna się na mysql
Go to the top of the page
+Quote Post
cathbad.b
post 24.02.2011, 09:45:51
Post #7





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 8.02.2011

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


Mam dokładnie ten sam problem

Potrzebuję konstrukcji która zachowa się tak jakbym zrobił 'DISTINCT LEFT/RIGHT JOIN'.
Postaram się to zobrazować.
Mam tabele:
sms (id, id_zadanie, data)
zadanie(id)

Czasem jest wysyłanych kilka smsów do jednego zadania.
Dlatego NIE jest dla mnie istotne który wiersz id_zadanie będzie połączony z tabelą sms
(bo każdy połączny wiersz z tabeli zadanie jest taki sam dla wiersza z tabeli sms) Ważne, żeby był jeden! (a inner/left/right/natural join zwróci wszystkie pasujące z tabeli zadanie).
Jest to sytuacja typowa dla konstrukcji 'DISTINCT ON'.
Nie mogę użyć DISTINCT ON, bo klauzula ORDER BY musi być inicjowana kolumną wymienioną w DISTINCT ON . A chcę sortować np. po dacie.


PS.Proszę o konkretne odpowiedzi.


Problem rozwiązany. Dla zainteresowanych.:
Nie ma de facto konstrukcji w rodzaju distinct join.

Ale da się to obejść robiąc zapytanie z inner join oraz funkcją okienkową rank().
Go to the top of the page
+Quote Post
mkozak
post 28.02.2011, 14:20:07
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 4
Dołączył: 21.03.2005

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


Nie możesz zrobić po prosty podzapytania

SELECT DISTINCT sms_id,zadanie_id FROM (
.... tutaj wtoje zapytanie z left joinem
)

questionmark.gif


--------------------
==============================================
Bo ja jestem Wróbelek Htmlek
==============================================
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 Wersja Lo-Fi Aktualny czas: 16.06.2025 - 21:11