我正在尝试实现动态 META 信息,以便它允许根据您正在查看的页面插入 META 信息。
我有3张 table
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 告诉您的那样,这不会解决您的问题。
关于php - MySQL 连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135540/