У меня есть таблица Users с этими значениями (для примера урезана):
- Имя * * 1004
- Город
- Область
- StateProvince
- Страна
- Continent
- Сила
- Износостойкость
- Интеллект
Я в основном хочу запрос, который возвращает самый высокий показатель по регионам для вас. Если у вас самая высокая сила (67) в стране, самая высокая выносливость (59) в вашем городе и не самый высокий интеллект в любом месте, я бы хотел получить результат в 2 ряда:
(«Сила», 67, «Страна», «США»)
(«Выносливость», 59, «Город», «Редмонд»)
Обратите внимание, что если у вас самая высокая сила в стране, вы также будете иметь самую высокую силу в штате / провинции, округе и городе (но я бы хотел, чтобы эти результаты не были возвращены в результате). Я могу сделать все это, используя несколько запросов SELECT, однако я хотел бы знать, как сделать это в одном запросе для повышения эффективности (или, если это даже хорошая идея?). Я думаю, что логика будет выглядеть примерно так (псевдокод):
(ВЫБРАТЬ ИЗ СИСТЕМЫ ORDERBY пользователей, ГДЕ Страна = 'ПРЕДЕЛ 1 MyCountry') IF Name! = 'Me' (ВЫБРАТЬ ИЗ СИСТЕМЫ ORDERBY пользователей, ГДЕ StateProvince = 'LIMIT 1 MyState') ... и так далее
Кроме того, вышесказанное также должно работать с выносливостью и интеллектом. Спасибо!