2016-06-08 133 views
0

我有以下MySQL查詢:添加JOIN to SQL查詢

SELECT 
    p.page_id, 
    p.page_title, 
    'post', 
    p.mem_id, 
    p.page_active, 
    p.page_timestamp, 
    p.page_meta_description, 
    p.page_meta_keywords, 
    p.page_img, 
    p.page_score, 
    p.page_summary, 
    p.page_cd_title, 
    p.label_id 
FROM 
    (SELECT 
     page_id 
    FROM 
     page 
    ORDER BY page_id 
    LIMIT 10000 , 5000) o 
     JOIN 
    page p ON p.page_id = o.page_id 
ORDER BY p.page_id 

我需要添加另一個JOIN來此查詢,看起來像這樣:

LEFT JOIN `subpage` sp 
ON (p.page_id = sp.page_id) 
WHERE p.page_type = 'cd' 

我試着加入LEFT JOIN之後JOIN已經在查詢中,但它給我一個SQL語法錯誤。我試過把它放在不同的地方,但無濟於事。

如何將查詢與LEFT JOIN結合?

回答

1

在第一次加入之後,將它粘在上面,就像這樣;

SELECT p.page_id, p.page_title, 'post', p.mem_id, p.page_active, p.page_timestamp, p.page_meta_description, p.page_meta_keywords,p.page_img, p.page_score, p.page_summary, p.page_cd_title, p.label_id 
FROM (
    SELECT page_id 
    FROM page 
    ORDER BY page_id 
    LIMIT 10000, 5000 
) o 
JOIN page p 
    ON p.page_id = o.page_id 
LEFT JOIN `subpage` sp 
    ON p.page_id = sp.page_id 
    AND p.page_type = 'cd' 
ORDER BY p.page_id 

它有助於將JOIN和ON語句視爲一個代碼塊,您不希望在這些代碼之間放置任何東西。

我想你可能希望你的WHERE實際上也是連接的一部分,所以我改變了它。假設你只想在p.page_type ='cd'時從'subpage'返回數據。如果這是一個WHERE語句,那麼你只會返回任何數據,其中p.page_type ='cd'