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
cathbad.b
post
Post #2





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

Posty w temacie


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: 26.12.2025 - 21:03