我无法想象如何构建查询。我需要从表CONTENT
中选择 hasn' 列 tmplvarid = 8 在左侧加入TEMPLATE VARIABLES
列
SELECT con.id, con.alias, tv.tmplvarid FROM modx_site_content as con LEFT JOIN modx_site_tmplvar_contentvalues as tv ON con.id=tv.contentid WHERE con.deleted=0 AND (con.content IS NULL OR con.content='') AND con.template=5 AND tv.tmplvarid!=8/*not contains 8*/
答案 0 :(得分:1)
简单:不要进行 INNER 加入,而是执行 OUTER JOIN :
SELECT con.id, con.alias, tv.tmplvarid FROM modx_site_content as con
LEFT OUTER JOIN modx_site_tmplvar_contentvalues as tv ON con.id=tv.contentid
AND tv.templvarid = 8
WHERE con.deleted=0 AND (con.content IS NULL OR con.content='')
AND con.template=5 AND tv.contentid IS NULL
所以你在OUTER JOIN中加入templvarid = 8 - 然后选择(在哪里)只有在tv中有NULL的行。 contentid(那些没有找到templvarid 8的人可以加入)