Próbowałem znaleźć sposób na sortowanie według kilku różnych podzbiorów tabeli. Wyobraź sobie te dwie tabele:
City
id name
1 ACity
2 BCity
3 CCity
Project
id name type city
1 AP 0 ACity
2 BP 1 ACity
3 CP 1 BCity
4 DP 1 CCity
5 EP 1 ACity
6 FP 0 CCity
Chcę wyświetlić wszystkie miasta, które mają co najmniej 1 projekt typu 0, który zostanie wyświetlony jako pierwszy. Wszystkie projekty w tym mieście są wymienione, z projektami typu 0 u góry (a następnie posortowanymi alfabetycznie). Wszystkie miasta bez projektów typu 0 są następnie wyświetlane alfabetycznie. W tym przykładzie wyniki będą następujące:
Desired result:
ACity AP
BP
EP
CCity FP
DP
BCity CP
Próbowałem kilku rzeczy, ale nie mogę zmusić go do prawidłowego działania. Byłbym wdzięczny za wszelką pomoc.
1 odpowiedź
SELECT *
FROM Projects P
LEFT JOIN (SELECT city, COUNT(city) as top_city
FROM Projects
WHERE type = 0
GROUP BY city) R
ON P.city = R.city
ORDER BY R.top_city DESC,
P.city,
P.type,
P.name
WYNIK: uwzględniam wszystkie kolumny do debugowania, ale możesz ograniczyć wynik do P.City i P.Name
Podobne pytania
Nowe pytania
mysql
MySQL to darmowy system zarządzania relacyjnymi bazami danych (RDBMS) o otwartym kodzie źródłowym, który wykorzystuje język SQL (Structured Query Language). NIE UŻYWAJ tego znacznika dla innych baz danych, takich jak SQL Server, SQLite itp. Są to różne bazy danych, które używają własnych dialektów SQL do zarządzania danymi.