wielokrotne Left joins lub subquery?

pracuję nad połączeniem wielu tabel, aby wyodrębnić pewne dane związane z „uruchomieniami” użytkownika, obejmuje to podstawy, takie jak runID, nazwa użytkownika itp., ale także dołącza do czasów uruchomienia i ulubionych.

mam zapytanie poniżej, które używa LEFT JOIN dla user_run_times i run_favourites tabeli.

zapytanie powinno pokazywać wszystkie uruchomienia dla użytkownika, najnowszą datę uruchomienia, jeśli jest ulubione, i najszybszy czas uruchomienia – wszystkie są wyświetlane, ale jeśli zarejestrowano więcej niż jeden raz, liczba ulubionych przekroczy jeden (zawsze powinna być tylko jedna lub zero).

Szukam jakichś sugestii jak poprawić to zapytanie? Prąd wyjściowy wynosi:

UserID runID createdBy username dateCreated favourite lastRan fastestTime4 3 3 bob 11-12-2011 3 27-01-2012 36920030

kolumna favourite powinna wyświetlić tylko jeden (ponieważ w run_favourites jest jeden wiersz), ale pokazuje trzy (dwa dla user_run_times i jeden dla run_favourites)

mam nadzieję, że nie zrobiłem tego zbyt mylącego, jeśli ktoś mógłby zasugerować, Jak mogę wyprowadzić strukturę tabeli w formacie „tekstowym”, jak większość tutaj, to również je opublikuję.

każda rada mile widziana, dzięki! 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

More: