我实际上是在合并这两个查询的结果:
第一次查询:
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
我得到的结果是:
第二次查询:
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
结果:
我想问的问题是如何通过过滤两个表中可用的sku来获得结果。
在这方面有点困惑......任何想法都会受到赞赏。
这只是数据的一部分。有大量的数据。是的,我想合并两个表,并希望找到两个表中可用的公共sku。
我的预期结果将是sku,title,total sold。
谢谢,无论如何,我设法绕过去获得结果。
我的最后一个问题:
SELECT * FROM(
SELECT
sku
,update_date
,description
FROMorderline
WHEREupdate_date
&gt; ='2012-03-06'ANDupdate_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)
答案 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