我有以下MySQL查询:
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
组合?
答案 0 :(得分:1)
在第一次加入ON之后粘贴它,就像这样;
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'