2012-03-21 63 views
0

其實我被困在合併這兩個查詢的結果的結果:如何合併這2個查詢在MySQL服務器

第一個查詢:

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,標題,總售出。

謝謝,無論如何,我設法得到解決的結果。

我的最終查詢:

SELECT * FROM(

選擇skuupdate_datedescription FROM orderline WHERE update_date> = '2012-03-06' AND update_date < =「2012-03 -07')g JOIN(

SELECT c.code,c.name,pc.sku,pc.cat_code 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)p ON left(g。 SKU,7)=左(p.sku,7)

+0

你的問題還不清楚。你想過濾sku。過濾如何?加入sku相同的查詢? – Msonic 2012-03-21 19:30:57

+0

我不明白你在問什麼。你想合併兩個數據集,然後通過sku列過濾嗎? – 2012-03-21 19:31:26

+0

爲了澄清,您希望將這兩個表合併到一個表中,以便您可以針對一個結果集進行過濾?還有很好的時機abe/msonic,我們所有人都在同一時間評論大聲笑 – Zork 2012-03-21 19:33:40

回答

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