2017-07-06 130 views
1

我想加入兩個查詢:加入兩個查詢的MySQL

這第一個查詢得到 「pgm_posts.post_title」 和 「pgm_post_views.count」(其中pgm_post_views.type = 「4」)

pgm_posts TABLE

SELECT pgm_posts.post_title, pgm_post_views.count 
FROM pgm_posts, pgm_post_views 
WHERE pgm_post_views.type="4" AND pgm_post_views.id = pgm_posts.id 

第二個查詢從條件「pgm_post_views」中獲取所有ID。

pgm_post_views.type =「0」:獲得「期間」的條件。 (看圖片)

pgm_post_views TABLE

SELECT pgm_posts.id 
FROM pgm_posts 
INNER JOIN pgm_post_views 
ON pgm_posts.id = pgm_post_views.id AND pgm_post_views.type="0" AND DATE_FORMAT(pgm_post_views.period, "%Y-%m-%d") <= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-%d') AND DATE_FORMAT(pgm_posts.post_date, "%Y-%m-%d") <= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-%d') 

簡歷:首先查詢得到POST_TITLE以及基於第二查詢的所有ID總數。

我該怎麼做?

回答

0

一個簡單的方法是一個純粹的基礎上選定的表

SELECT p 
     gm_posts.post_title 
     , pgm_post_views.count 
FROM pgm_posts 
INNER JOIN pgm_post_views ON pgm_post_views.id = pgm_posts.id 
        AND pgm_post_views.type="4" 
INNER JOIN ( 
SELECT 
     pgm_posts.id 
FROM pgm_posts 
INNER JOIN pgm_post_views ON pgm_posts.id = pgm_post_views.id AND pgm_post_views.type="0" 
      AND DATE_FORMAT(pgm_post_views.period, "%Y-%m-%d") <= 
         DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-%d') 
      AND DATE_FORMAT(pgm_posts.post_date, "%Y-%m-%d") <= 
         DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-%d') 
) T on T.id = pgm_posts 
+0

THX的幫助,我現在明白了,我怎麼能爲別人查詢加盟!謝謝 – Lemecparla