У меня есть вопрос.
У меня есть 2 стола
таблица 1: продукты
product_id , name , images_sideview
таблица 2: product_description
product_id , volgnr
Я хочу отсортировать их с числами из таблицы 2 и поля volgnr.
Есть ли способ сделать это с помощью mysql?
Существует два способа сортировки. По возрастанию и по убыванию. Вы не упомянули о заказе. Поэтому я предоставляю вам оба ответа с двумя вариантами:
ПОРЯДОК ЗАКАЗА:
SELECT DISTINCT table1.* FROM table1 INNER JOIN table2 ON table1.product_id = table2.product_id GROUP BY table1.product_id ORDER BY table2.product_id ASC, table2.volgnr ASC;
В ПОРЯДКЕ УБЫВАНИЯ:
SELECT DISTINCT table1.* FROM table1 INNER JOIN table2 ON table1.product_id = table2.product_id GROUP BY table1.product_id ORDER BY table2.product_id DESC, table2.volgnr DESC;
Если вы хотите сказать MySQL, чтобы сначала отсортировать FIRST по volgnr, а затем по product_id :
ПОРЯДОК ЗАКАЗА:
SELECT DISTINCT table1.* FROM table1 INNER JOIN table2 ON table1.product_id = table2.product_id GROUP BY table1.product_id ORDER BY table2.volgnr ASC, table2.product_id ASC;
В ПОРЯДКЕ УБЫВАНИЯ:
SELECT DISTINCT table1.* FROM table1 INNER JOIN table2 ON table1.product_id = table2.product_id GROUP BY table1.product_id ORDER BY table2.volgnr DESC, table2.product_id DESC;
Надеюсь, это поможет.
Изменить 1:
Теперь я отредактировал запрос, чтобы он не дал вам дубликатов результатов. Попробуйте и дайте мне знать, как это происходит.
Редактировать 2: Добавлено предложение Group By. Попробуйте это.
select * from products t1 inner join product_descriptions t2 on t1.product_id = t2.product_id order by t2.volgnr
SELECT p.'product_id', p.'name', p.'images_sideview' FROM products p LEFT JOIN product_descriptions d ON p.product_id = d.product_id ORDER BY d.volgnr;