У меня есть таблица пользователей с этими значениями (урезанная для примера):MySQL множественный запрос с немного логики
- Название
- Город
- County
- StateProvince
- Страна KG
- Континент
- Сила
- Endurance
- Intelligence
Я в принципе хочу запрос, который возвращает наибольший стата по регионам для себя. Если у вас самая высокая сила (67) в стране, самая высокая выносливость (59) в вашем городе, а не самый высокий интеллект в любом месте, мне бы хотелось получить результат из 2-х строк:
('Strength', 67, «Страна», «США»)
(«Endurance», 59, «Город», «Redmond»)
Обратите внимание, что если у вас есть самая высокая сила в стране, вы также будете иметь самый высокий силы в штате/провинции, уезде и городе (но я бы хотел, чтобы они не были возвращены в результате). Я могу сделать все это, используя несколько запросов SELECT, однако я хотел бы знать, как это сделать в одном запросе для эффективности (или если это даже хорошая идея?). Я предположил бы, что логика бы что-то вроде (псевдо-код):
(SELECT FROM Пользователи OrderBy усилительный LIMIT Country = 'MyCountry' 1) IF Name = 'Me' (SELECT FROM Users OrderBy усилительный! StateProvince = 'MyState' LIMIT 1) ... и т. Д.
Кроме того, вышеизложенное также необходимо будет работать с выносливостью и интеллектом. Благодаря!
Это помогает поставить меня на правильный путь, но я до сих пор полный новичок в этом, и я имею трудное время понимание того, как сформировать логику, которая в основном говорит «, когда мы получили 0 строк, или имя не является «MyName» – Trevor