php programmer
9.01.2008, 11:09:04
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
kszychu
9.01.2008, 11:10:03
Nie szybciej by było to sprawdzić samemu?
php programmer
9.01.2008, 11:16:39
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
jastu
9.01.2008, 11:34:47
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.
php programmer
9.01.2008, 11:56:21
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?
mefjiu
17.12.2008, 16:18:16
Mam dokładnie takie sam problem proszę o pomoc kogoś kto zna się na mysql
cathbad.b
24.02.2011, 09:45:51
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().
mkozak
28.02.2011, 14:20:07
Nie możesz zrobić po prosty podzapytania
SELECT DISTINCT sms_id,zadanie_id FROM (
.... tutaj wtoje zapytanie z left joinem
)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.