![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 18.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc.
Zrobiłem jak mówicie i działa, ale jest jeszcze jeden mankament, o którym nie wspomniałem. Mianowicie muszę szukać userów po nazwisku np i jak wywołałem poniższe zapytanie:
działa w następujący sposób: - Wypluwa na początku wszystkie skille posortowane malejąco Prawidłowo - Na końcu wypluwa wszystkich użytkowników bez znaczenia czy pasują do users.nazwisko LIKE '%kowal% Błąd Jakiś pomysł? Udało mi się:
Dzięki wszystkim za pomoc! Ten post edytował maciorrus 19.03.2014, 09:12:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 02:45 |