У меня есть запрос MySQL, над которым я работал со вчерашнего дня, который я не смог исправить.Я также просматривал много поиска в Google, а также здесь в stackoverflow, который я до сих пор не могу найти жизнеспособное решение.
В моей проблеме, у меня есть одна таблица Users, которая имеет столбец:идентификатор, имя, пол, город, гражданство.Таблица содержит тысячи записей.
Таблица выглядит примерно так:
-------------------------------------------
| id | name | gender | city | citizenship |
-------------------------------------------
| 1 | alfred | m | new york | american |
-------------------------------------------
| 2 | benny | f | london | british |
-------------------------------------------
| 3 | george | m | brisbane | australian |
-------------------------------------------
| 4 | itachi | m | tokyo | japanese |
-------------------------------------------
| 5 | jenny | f | lauderdale | american |
-------------------------------------------
и т. Д. ... около тысячи записей ..
Теперь моя проблема, я хочу запросить эту таблицу (Пользователи) на основе определенных критериев.
Например, я хотел бы запросить по крайней мере 50 мужчин и 50 женщин, то есть всего 100 записей.
ЧтоТакже необходимо, чтобы какой-то пользователь, по крайней мере, 30 из них были в Нью-Йорке, еще 30 из них - в Лондоне, еще 40 из них - в Брисбене.в общей сложности 100 записей.
Кроме того, независимо от того, в каком городе они находятся, необходимо, чтобы какой-либо пользователь имел гражданство, по крайней мере 60 из них - американцы, 20 британцев и 20 австралийцев.
Этомой текущий запрос, который я пробовал, что-то вроде этого, с подзапросом:
SELECT
*
FROM
(
SELECT gender as genderMale
FROM users
WHERE gender = 'M'
LIMIT 50
) AS myMale,
(
SELECT gender as genderFemale
FROM users
WHERE gender = 'F'
LIMIT 50
) AS myFemale,
(
SELECT city as cityNewYork
FROM users
WHERE city = 'new york'
LIMIT 30
) AS myCityNewYork,
(
SELECT city as cityLondon
FROM users
WHERE city = 'london'
LIMIT 30
) AS myLondon,
(
SELECT city as cityBrisbane
FROM users
WHERE city = 'brisbane'
LIMIT 40
) AS myBrisbane
и так далее для гражданства .. и т.д ..
Результат также дал больше, чем я хотел,
Есть ли способ достичь этого в MySQL?
Ваша помощь с благодарностью.
Спасибо
ОБНОВЛЕНИЕ: SQL Fiddle
http://sqlfiddle.com/#!9/499874