Я пытаюсь получить динамическую информацию META, чтобы она могла вставлять информацию META в зависимости от просматриваемой страницы.MySQL Присоединение к нескольким таблицам
У меня есть 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,
Я пытаюсь выполнить запрос, который позволяет для населения META информации из таблицы SITE, если информация не существует в таблице CATEGORY_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 и любая помощь будет принята с благодарностью.
У вас, вероятно, есть одна «пустая» строка на 'cms_sites'. – dmmd
Yup, thats получил его, я добавил вторичное предложение WHERE, чтобы найти сайты с идентификатором 1, и он решил проблему. Спасибо :) – dmurray
Не беспокойтесь, рад, что это помогло :) – dmmd