即使它是否为空,我如何加入该列?在PHP / MYSQL中

时间:2017-03-20 20:46:28

标签: mysql left-join inner-join

我有一个查询,在子类别下显示问题,在类别下显示更多问题,因为类别下有子类别。这是我的代码

SELECT 
   a.* 
FROM question a 
LEFT JOIN category b on a.question_subcat = b.category_id 
WHERE b.parentcategoryid  = $question

如何包含显示带有空值的question_subcat而不仅仅是带有值的值?由于并非我的所有问题都必须属于一个子类别,因此它可以只属于一个类别,而不属于任何使其为空的子类别。我该如何显示它?

1 个答案:

答案 0 :(得分:1)

左外连接应该可以满足您的要求!如果删除WHERE条件,则会出现question_subcat为空的所有问题。

无论如何,我并不完全理解你的要求,但是你需要在父表上过滤或在条件中提供替代。

试想一下:left out join返回表b的所有表行和表b的行仅存在(意味着b。*为null) - 没有问题遗漏。但你的位置过滤b.parentcategoryid与$question => b.parentcatoryid如果未找到则为null =>过滤器将其踢出去。