Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 18.03.2014 Ostrzeżenie: (0%)
|
Witam,
Mam następujący problem. Pewnie banał dla doświadczonych MySql-owców, ale ja szukałem po forach i nadal nie potrafię tego zrobić. Mam trzy tabele: users (id, imie, nazwisko) skills (id, name) rating (id, user_id, skill_id, rating) Porzebuję zadać zapytanie MySql, żeby wywaliło mi, mówiąc w skrócie, skills-y userów. Problem w tym, że muszą być posortowane wg pola rating (malejąco). Może się zdarzyć, że są userzy, którzy nie mają skillsów i wtedy powinno też wypluć takiego użytkownika, a w polach skill, rating pojawić się wartości null. Czyli np: Imie Nazwisko Skill Rating Jan Kowalski szykosc 5 Malgosia Kowalska sila 3 Adam Nieudacznik null null Myślałem o takim rozwiązaniu: SELECT users.imie, users.nazwisko, skill.name, rating.rating FROM users INNER JOIN skills INNER JOIN rating ON rating.user_id=users.id AND rating.skill_id=skills.id ORDER BY rating.rating DESC Działa nieźle, ale nie wyświetla użytkowników bez skilli. Proszę o pomoc. Mam nadzieję, że w miarę dokładnie opisałem o co dokładnie mi chodzi. |
|
|
|
maciorrus JOIN - który użyć 18.03.2014, 21:06:20
mar1aczi Wędka: FULL OUTER JOIN 18.03.2014, 21:16:29
KR2615 zmień pierwszy INNER JOIN na LEFT OUTER JOIN i pow... 18.03.2014, 21:19:26
mmmmmmm Jakie FULL?
Ewidentny LEFT
@maciorrus staraj się ... 18.03.2014, 21:22:32
mar1aczi @KR2615: Będzie, ale tylko wtedy jeśli baza jest n... 18.03.2014, 21:23:39
maciorrus Dzięki za pomoc.
Zrobiłem jak mówicie i działa, al... 19.03.2014, 09:39:43
mmmmmmm Musiałbyś sobie doczytać jaka jest różnica w umies... 19.03.2014, 10:18:31 ![]() ![]() |
|
Aktualny czas: 12.03.2026 - 01:23 |