[英]MySQL Join over multiple tables
我正在嘗試實現動態的META信息,以便它將允許您根據正在查看的頁面插入META信息。
我有3張桌子
CATEGORIES
category_id,
category_name,
category_title,
category_url,
site_id,
SITE
site_id,
site_name,
site_url,
meta_kw,
meta_desc,
CATEGORY_META
site_id,
category_id,
meta_keywords,
meta_description,
我正在嘗試運行一個查詢,如果CATEGORY_META表內不存在任何信息,則允許從SITE表填充META信息。 為此,我要查看存在的“ category_url”並從中收集“ category_id”以運行子查詢。 但是,它返回我不想要的空行,並導致錯誤。
我的查詢如下所示:
SELECT category_id, s.meta_kw, s.meta_desc, m.meta_keywords, m.meta_description
FROM cms_sites s
LEFT JOIN cms_category_meta m
ON s.site_id=m.site_id AND m.category_id =
(SELECT category_id FROM cms_categories WHERE category_url='?')
返回:
|category_id |meta_kw |meta_Desc | meta_keywords |meta_description |
|NULL |kw |desc |NULL |NULL |
|NULL | | |NULL |NULL |
我是MySQL的新手,任何幫助將不勝感激。
嘗試這個:
SELECT
category_id, s.meta_kw, s.meta_desc, m.meta_keywords, m.meta_description
FROM cms_sites s
LEFT JOIN cms_category_meta m ON s.site_id = m.site_id
LEFT JOIN cms_categories cat ON m.category_id = cat.category_id
AND cat.category_url = '?'
無論如何,如果您有@jlcd告訴您的“空”行,這將無法解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.