Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> distinct dla left join
php programmer
post
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
 
Start new topic
Odpowiedzi (1 - 7)
kszychu
post
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
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
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
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
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
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
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 Aktualny czas: 19.08.2025 - 19:59