如何在mysql服务器中合并这2个查询的结果

时间:2012-03-21 19:27:41

标签: mysql sql

我实际上是在合并这两个查询的结果:

第一次查询:

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。

谢谢,无论如何,我设法绕过去获得结果。

我的最后一个问题:

  

SELECT * FROM(

     

SELECT skuupdate_datedescription FROM orderline WHERE   update_date&gt; ='2012-03-06'AND update_date&lt; ='2012-03-07')g   加入(

     

SELECT c.code,c.name,pc.sku,pc.cat_code FROM cat_parent cp,cat   c,prod_cat pc,产品pp WHERE 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 left(g.sku,7)= left(p.sku,7)

1 个答案:

答案 0 :(得分:2)

像这样 -

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