2016-06-08 132 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'