MySQL复杂SQL查询,显示表列不匹配的空值

MySQL复杂SQL查询,显示表列不匹配的空值,mysql,sql,Mysql,Sql,我的数据库中有两个表:en_page和mwpage。两者都有一个页面标题栏。我想要的是选择两个页面标题值匹配的数据 比如说 SELECT EN.page_title ENP, MW.page_title MWP FROM en_page AS EN, mwpage AS MW WHERE EN.page_title = 'Main_Page' AND MW.page_title = 'Main_Page' LIMIT 0 , 30 此查询工作正常,并返回以下数据: ENP |

我的数据库中有两个表:en_page和mwpage。两者都有一个页面标题栏。我想要的是选择两个页面标题值匹配的数据

比如说

SELECT EN.page_title ENP, MW.page_title MWP
FROM en_page AS EN, mwpage AS MW
WHERE EN.page_title =  'Main_Page'
AND MW.page_title =  'Main_Page'
LIMIT 0 , 30
此查询工作正常,并返回以下数据:

ENP |       MWP
Main_Page|  Main_Page
但我有一个例外情况。如果table.page_title的任何值与条件不匹配,则查询不返回结果集。我希望它仍然返回一个结果集,其中不匹配的表应为空,如下所示:

ENP |       MWP
Main_Page|  
我不知道怎么做。有人能帮忙吗?

试试这个

SELECT EN.page_title ENP, MW.page_title MWP
FROM en_page AS EN, mwpage AS MW
WHERE (EN.page_title =  'Main_Page' OR EN.page_title='')
AND (MW.page_title =  'Main_Page' OR MW.page_title = '')    
LIMIT 0 , 30
SELECT EN.page_title ENP, MW.page_title MWP
FROM 
    en_page AS EN
    LEFT OUTER JOIN mwpage AS MW ON EN.page_title = MW.page_title
WHERE EN.page_title =  'Main_Page'
LIMIT 0 , 30

要处理空大小写,只需在


这不起作用,因为在任何表中都没有空的页面标题,我也无法创建任何标题:尝试将=替换为is NULL。。。例如:如果EN.page_title='Main_page'或EN.page_title为空,则返回一个空结果集,joostschouten的解决方案适合我,谢谢您的帮助!,虽然它返回null,但对于空值,我可以使用它!,谢天谢地,只有一个问题,如果我需要匹配更多的表,我需要更改什么?这取决于您希望如何匹配它们。添加更多的JOIN就可以了。例如,从en_页面作为en LEFT OUTER JOIN mwpage作为MW ON en.page_title=MW.page_title LEFT OUTER JOIN someOtherTable作为en.page_title=other.page_title我正在测试它,但它没有,你确定它是空值吗?例如,尝试在类似于THEN'test123'的内容中更改THEN。它在phpmyadmin中确实显示为NULL,但在php脚本中,它可以按预期工作!
SELECT EN.page_title ENP, CASE WHEN  MW.page_title IS NULL THEN '' ELSE  MW.page_title END MWP
FROM 
    en_page AS EN
    LEFT OUTER JOIN mwpage AS MW ON EN.page_title = MW.page_title
WHERE EN.page_title =  'Main_Page'
LIMIT 0 , 30