J'essaie d'obtenir des informations META dynamiques afin que les informations META puissent être insérées en fonction de la page que vous consultez.MySQL Rejoindre plusieurs tables
I Have 3 tables
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,
Je suis en train d'exécuter une requête qui permet à la population des informations META de la table du SITE si aucune information existe à l'intérieur de la table de CATEGORY_META. Pour ce faire, je regarde le "category_url" qui existe et glanant le "category_id" de cela pour lancer une sous-requête. Cependant, il retourne une ligne vide que je ne veux pas et provoque des erreurs.
Ma requête ressemble à ceci:
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='?')
qui retourne:
|category_id |meta_kw |meta_Desc | meta_keywords |meta_description |
|NULL |kw |desc |NULL |NULL |
|NULL | | |NULL |NULL |
Je suis relativement nouveau à MySQL et toute aide serait grandement appréciée.
Vous avez probablement une ligne "vide" sur 'cms_sites'. – dmmd
Yup, c'est tout, j'ai ajouté une clause WHERE secondaire pour trouver des sites avec un ID de 1 et cela a résolu le problème. Merci :) – dmurray
Pas de soucis, content que ça a aidé :) – dmmd