Intereting Posts
PHP – Не удалось открыть поток: нет такого файла или каталога XML-файл – получить определенные дочерние узлы в неограниченных глубинах узлов В PHP: OpenSSL Сообщения об ошибках: ошибка: 1409F07F: Подпрограммы SSL: SSL3_WRITE_PENDING: неудачная попытка записи Включение новых строк в функцию PHP preg_replace mysql и кодирование Удалить элемент из массива, если значение элемента содержит искомый символ строки jQuery Ajax переменная ответа от php PHP session_start () вызывает зависание HTTP-запросов Как пройти каталог, рекурсивный возврат полного пути в PHP? Является ли это хорошим способом санации входов php $ _POST? Переадресация на URL-адрес референта в кодеригнере Странное поведение оператора ++ в PHP 5.3 jQuery удалить идентификатор из элемента с помощью ajax базы данных и обновить Недопустимое разрешение file_put_contents Скидка в зависимости от количества товаров и категорий товаров

Заказ MYSQL из другой таблицы

У меня есть вопрос.

У меня есть 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;