SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.09.2018 15:32:39

gotlib
Участник
Зарегистрирован: 29.09.2016
Сообщений: 12

Вывести два заказа, у которых максимальное количество общих товаров.

Есть таблицы

CREATE TABLE orders(
    id INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    order_number VARCHAR(100) NOT NULL
);

CREATE TABLE products(
    id INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL
);

CREATE TABLE orders_products (
    order_id INT(10) NOT NULL,
    product_id INT(10) NOT NULL
);

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

Неактивен

 

#2 12.09.2018 10:20:08

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Вывести два заказа, у которых максимальное количество общих товаров.

select t1.order_id, t2.order_id
from orders_products t1 join orders_products t2 on t1.product_id=t2.product_id and t1.order_id<t2.order_id
group by t1.order_id, t2.order_id
order by count(*) desc limit 2


если нужны имена заказов, а не номера, то сделайте ещё 2 join таблицы orders

Неактивен

 

#3 12.09.2018 11:30:51

gotlib
Участник
Зарегистрирован: 29.09.2016
Сообщений: 12

Re: Вывести два заказа, у которых максимальное количество общих товаров.

Спасибо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson