2015-04-01 38 views
0

我有這個查詢,它不會爲我提供任何錯誤&每個子查詢在按自身運行時都按預期工作。當我運行了整個事情,如下,我只得到了列:post_title & views我如何在子查詢中加入連接數

SELECT post_title, 
     views, 
     coupons_today, 
     coupons_lifetime, 
     coupons_remaining 
FROM wp_posts p 
     LEFT JOIN wp_act ct --has views column 
       ON ct . campaign_id = p . id 
     LEFT JOIN(SELECT Count(*) AS coupons_today, 
         campaign_id cid 
       FROM wp_act 
       WHERE date = CURRENT_DATE) AS act1 
       ON act1 . cid = p . id 
     LEFT JOIN(SELECT Count(*) AS coupons_lifetime, 
         campaign_id cid2 
       FROM wp_act) AS act2 
       ON act2 . cid2 = p . id 
     LEFT JOIN(SELECT Count(*) AS coupons_remaining, 
         campaign_id cid3 
       FROM wp_ac 
       WHERE status IS NULL) AS ac 
       ON p . id = ac . cid3 
WHERE p . post_status = 'publish' 
AND p . post_type = 'page' 
AND p . ping_status = 'open'; 

回答

0

試試這樣說:

SELECT p.post_title, 
     ct.views, 
     (SELECT Count(*) 
      FROM wp_act 
      WHERE date = CURRENT_DATE 
       AND campaign_id = p.id 
    ) AS coupons_today, 
     (SELECT Count(*) 
      FROM wp_act 
      WHERE campaign_id = p.id 
    ) AS coupons_lifetime, 
     (SELECT Count(*) 
      FROM wp_ac 
      WHERE status IS NULL 
       AND campaign_id = p.id 
    ) AS coupons_remaining 
    FROM wp_posts p 
    LEFT JOIN wp_act ct ON ct . campaign_id = p . id 
    WHERE p . post_status = 'publish' 
     AND p . post_type = 'page' 
     AND p . ping_status = 'open'; 
+0

我剛剛找到解決方案,不幸與您的我得到:WordPress數據庫錯誤操作數應包含1列(s)查詢 – webaholik 2015-04-02 05:09:52

+0

請向我們展示您的解決方案。 – 2015-04-02 05:15:21

+0

剛剛發佈,任何改進歡迎,但它似乎正在按預期工作 – webaholik 2015-04-02 05:18:44

0

與朋友(感謝Swaroop)我結束一些幫助與此:

SELECT p.post_title, 
     ct.views   AS views, 
     ct.coupons  AS coupons_today, 
     Sum(ctl.coupons) AS coupons_lifetime, 
    (SELECT Count(*) FROM wp_ac WHERE c.campaign_id = p.id AND c.status IS NULL) 
     AS coupons_remaining 
    FROM wp_posts p 
    LEFT JOIN wp_act ct ON ct.campaign_id = p.id AND ct.date = CURRENT_DATE 
    LEFT JOIN wp_act ctl ON ctl.campaign_id = p.id 
    WHERE p.post_status = 'publish' 
     AND p.post_type = 'page' 
     AND p.ping_status = 'open' 
    GROUP BY p.id 
+0

仔細檢查SUM()和COUNT();該值可能高於預期值。 – 2015-04-02 05:21:18

+0

@RickJames你說的沒錯,我的優惠券還沒有結賬。 – webaholik 2015-04-02 08:21:39