Упорядочить по в mysql с использованием второй таблицы

#mysql #sql-order-by

#mysql #sql-order-by

Вопрос:

У меня есть две таблицы, одна из которых представляет собой список хранилищ ОС и атрибутов, вторая — список allocationsa на основе этих атрибутов. Таблица атрибутов (stores_metadata)

 | key | store_key | field | value
| 1   | 1         | size  | Large
| 2   | 1         | dist  | Midlands
| 3   | 2         | size  | Medium
| 4   | 3         | dist  | South
  

Таблица распределения (allocation)

 | key | ticket_key | field | value | count
| 1   | 1          | size  | Large | 10
| 2   | 1          | size  | Medium| 5
  

Мне удалось заставить распределения работать, используя код:

 SELECT store_key, quantity FROM 
allocation

INNER JOIN store_metadata
  ON allocation.`field` = store_metadata.`field`
    AND allocation.`value` = store_metadata.`value`
  

Это возвращает список хранилищ и количество элементов, которые они должны получить, что мне теперь нужно сделать, упорядочив хранилища по атрибуту распределения.

Любая помощь была бы высоко оценена.

Комментарии:

1. В какой таблице существует это поле?

2. Распределение — это запись в столбце field таблицы stores_metadata.

3. Извините, распределение находится в базе данных как dist.

Ответ №1:

Вопрос задан не очень хорошо.

Чтобы выполнить упорядочение по любому столбцу в вашем результирующем наборе, добавьте ORDER BY [column] в конец запроса. Например.

ВЫБЕРИТЕ store_key, количество из 
распределение

ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ store_metadata
 О распределении.`поле` = store_metadata.`поле`
 И распределение.`значение` = store_metadata.`значение`
 УПОРЯДОЧИТЬ ПО распределению.`поле `;

Комментарии:

1. я не хочу сортировать по столбцу, я хочу отсортировать по значению атрибута в таблице метаданных.