Как объединить результат этих 2 запросов на сервере MySQL - PullRequest
0 голосов
/ 21 марта 2012

Я на самом деле застрял в объединении результатов этих двух запросов:

первый запрос:

SELECT c.code, c.name, pc.sku, pc.cat_code, pp.title 
FROM `cat_parent`  cp, cat c, prod_cat pc, products pp 
WHERE c.code = cp.cat_code 
  AND cp.cat_code = pc.cat_code 
  AND pp.sku = pc.sku 
  AND cp.parent_code = 01110 
  AND hide =0

Результат, который я получаю:

enter image description here

Второй запрос:

SELECT `sku` , `update_date` , `description` , count( * ) AS total_sold 
FROM `orderline` 
WHERE `update_date` >= ( DATE_ADD(CURDATE( ) , INTERVAL -14 DAY ) ) 
  AND `update_date` <= ( DATE_ADD(CURDATE( ) , INTERVAL -7 DAY ) ) 
GROUP BY left( sku, 7 ) 
ORDER BY total_sold DESC

Результат: enter image description here

Вопрос, который я хочу задать, - как получить результат, отфильтровав sku, доступный в обеих таблицах.

Просто немного запутался с этой стороны .... любые идеи будут оценены.

Это только часть данных. есть куча данных. Да, я хочу объединить обе таблицы и найти общий sku, доступный в обеих таблицах.

Мой ожидаемый результат будет sku, title, total sold.

Спасибо, в любом случае мне удалось обойтись, чтобы получить результат.

Мой последний запрос:

ВЫБРАТЬ * ИЗ (

ВЫБРАТЬ sku, update_date, description ОТ orderline ГДЕ update_date> = '2012-03-06' И update_date <= '2012-03-07') г ПРИСОЕДИНЯЙТЕСЬ (</p>

SELECT c.code, c.name, pc.sku, pc.cat_code FROM cat_parent cp, cat c, prod_cat pc, продукты pp ГДЕ c.code = cp.cat_code И cp.cat_code = pc.cat_code AND pp.sku = pc.sku AND cp.parent_code = 01110 AND hide = 0) p ON слева (g.sku, 7) = слева (p.sku, 7)

1 Ответ

2 голосов
/ 22 марта 2012

Как то так -

SELECT
    `c`.`code`, `c`.`name`, `pc`.`sku`, `pc`.`cat_code`, `pp.title`,
    `ol`.`sku`, `ol`.`update_date`, `ol`.`description`, COUNT(*) AS `total_sold`
FROM `cat_parent` `cp`
INNER JOIN `cat` `c`
    ON `c`.`code` = `cp`.`cat_code`
INNER JOIN `prod_cat` `pc`
    ON `cp`.`cat_code` = `pc`.`cat_code`
INNER JOIN `products` `pp`
    ON `pp`.`sku` = `pc`.`sku`
INNER JOIN `orderline` `ol`
    ON LEFT(`pc`.`sku`, 7) = LEFT(`ol`.`sku`, 7)
WHERE `cp`.`parent_code` = 01110
AND `hide` = 0
AND `ol`.`update_date` >= ( DATE_ADD(CURDATE( ) , INTERVAL -14 DAY ) )
AND `ol`.`update_date` <= ( DATE_ADD(CURDATE( ) , INTERVAL -7 DAY ) )
GROUP BY left( `ol`.`sku`, 7 )
ORDER BY `total_sold` DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...