Как я могу запросить таблицу SQL с несколькими условиями и получить не более 1 элемента для каждого условия?MySql

Форум по Mysql
Anonymous
Как я могу запросить таблицу SQL с несколькими условиями и получить не более 1 элемента для каждого условия?

Сообщение Anonymous »

У меня есть таблица MySQL следующей структуры:

Код: Выделить всё

+------------+--------------+
| Field      | Type         |
+------------+--------------+
| id         | varchar(20)  |
| make       | varchar(255) |
| model      | varchar(255) |
| color      | varchar(20)  |
+------------+--------------+
Я хочу запросить результаты, чтобы получить перестановку любого цвета Toyota, Honda или Mazda, а также синего цвета< /code> или Red, однако я хочу видеть ограничение в 3 случайных записи каждой из этих комбинаций. Например, я потенциально мог бы получить в результате следующее:

Код: Выделить всё

+-------------------+
| Make    |  Color  |
+-------------------+
| Toyota  |   Red   |
+-------------------+
| Toyota  |   Red   |
+-------------------+
| Toyota  |   Blue  |
+-------------------+
| Honda   |   Red   |
+-------------------+
| Mazda   |   Blue  |
+-------------------+
| Mazda   |   Red   |
+-------------------+
| Honda   |   Blue  |
+-------------------+
Мне не обязательно важен порядок результатов, но я хочу иметь возможность извлекать перестановки случайным образом с ограничением на количество возвращаемых перестановок.< /p>
Есть ли [простой] способ сделать это с помощью запроса, который можно сгенерировать на лету? Альтернативно, я открыт для идеи выполнения нескольких запросов, а затем самостоятельного объединения их в коде, но, насколько я понимаю, несколько запросов не очень производительны? Хотя производительность определенно вызывает беспокойство, мне хотелось бы, если это возможно, обеспечить баланс читаемости кода и сложности запросов.

Подробнее здесь: https://stackoverflow.com/questions/793 ... most-1-ite

Вернуться в «MySql»