Each modx_site_content record may have several records in modx_site_tmplvar_contentvalues.
I need to retrieve both modx_site_tmplvar_contentvalues.value where the tvv.tmplvarid = 3 AND the tvv.tmplvarid = 1. where tvv.tmplvarid is a future date, I need to return the tvv.value of tvv.tmplvarid 3 which is a comma separated list of tags.
This query does not return the values I need & I’m not sure how to get just what I want.
SELECT sc.id, sc.pagetitle, tvv.value, tvv.tmplvarid, tvv.id, tvv.value
FROM modx_site_content sc
left join modx_site_tmplvar_contentvalues tvv on tvv.contentid = sc.id
where published = '1'
and (tvv.tmplvarid = '3' and tvv.value >= curdate())
order by sc.id;
basically in the end I need to return only the list of tags (tvv.tmplvarid = 3) where the other associated record (tvv.tmplvarid = 1) is a date in the future.
Any thoughts, can this be done with grouping instead? I don’t actually need anything from the modx_site_content table.
So you need to return the tags both rows in the
modx_site_tmplvar_contentvaluestable that hastmplvaridof 1 and 3 both related to the samemodx_site_content, but only when thetmplvarid3 row has a datetime field in the future?I would do two separate joins to the modx_site_tmplvar_contentvalues tabe:
SQL Fiddle: http://sqlfiddle.com/#!2/a4031/2