Php 无法计算确切的行数
我已经编写了一个模型代码,将两个表连接起来,并返回结果 从下表的结构来看,我的模型代码只显示了2个问题计数,跳过了最后一个问题,经过一点研究,我发现了它不计算第三个问题的原因,这是因为它在我的Php 无法计算确切的行数,php,mysql,codeigniter,Php,Mysql,Codeigniter,我已经编写了一个模型代码,将两个表连接起来,并返回结果 从下表的结构来看,我的模型代码只显示了2个问题计数,跳过了最后一个问题,经过一点研究,我发现了它不计算第三个问题的原因,这是因为它在我的答案表中没有任何答案 我想,如果没有答案,那么对于特定的问题,它应该显示count=0,如何解决这个问题 表结构 question ----------- question_id PK Auto_Incr question varchar... votes int answer
答案表中没有任何答案
我想,如果没有答案,那么对于特定的问题,它应该显示count=0,如何解决这个问题
表结构
question
-----------
question_id PK Auto_Incr
question varchar...
votes int
answer
------------
answer_id PK Auto_icre
question_id FK refrences question
content longtext
表数据结构数据:
question
-----------
question_id question votes
1 what's name? 0
2 where you? 3
3 blah blah 9
answer
----------
answer_id question_id content
4 2 India
5 2 Nepal
6 2 Pakistan
7 1 Mr Osama Binladan
模型
您需要的是a,这基本上意味着,如果第一个表中存在一行,那么第二个表中不需要相应的行。在您的情况下,如果有问题,即使没有匹配的答案,也会返回
要在codeigniter中执行左连接,只需将“left”作为第三个参数传递给调用join
$this->db->join('answer','answer.question_id = question.question_id', 'left');
有关加入呼叫的更多信息可用。您应该使用LEFT join
$this->db->join('answer','answer.question_id = question.question_id','LEFT');
@是的,谢谢。工作很好。我不知道。在这个连接中“左”是什么意思?用简短的解释将其作为答案发布。这样我才能接受你的邀请answer@BurlsWillisMySQL左加入
,准备好了。@Burlswills确定,添加了一个答案。
$this->db->join('answer','answer.question_id = question.question_id','LEFT');