3个表的连接查询在php mysql中无法正常工作

时间:2014-01-15 07:05:20

标签: php mysql join jointable

我正在使用php mysql,我加入了3个表:demanddraftpayonlineregistration。现在我想根据校园课程和考试日期从这三个表中获取值。

注册表有三个字段:campus1course1examdate,根据这些字段我们必须从表 demanddraft中获取值 payonline 。我想从payonline表中获取status=success的值,从demanddraft表中获取ddstatus=approved的值。但无法获取所需的记录。

这是我的问题:

$sql= "select * from programme prog 
join demanddraft dem ON prog.stuid = dem.stuid 
join payonline pay ON pay.stuid = prog.stuid  
where ((pay.status='success' || dem.ddstatus='Approved') 
&& prog.campus1='".$campus1."') && prog.course1='".$course1."'
&&  prog.examdate='".$examdate."'";

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

没有错误,但缺少记录,例如我有194名学生   在payonline表中成功,9名学生在demendraft中获得批准   表所以总数应该是203,但我的查询给了我183

这可能是你的实际结果。 我看到你在哪里((pay.status ='成功'|| dem.ddstatus ='已批准') &安培;&安培; prog.campus1 = ' “$ campus1。”')。所以,是的,你可以在支付表中有194个,在dem表中有9个,但这并不意味着所有这些都有prog.campus1 ='“。$ campus1。”'。或任何下一个WHERE条件。

如果您可以发布表格以及http://sqlfiddle.com/之类的数据,那将非常好,这样我们就可以运行查询并浏览您的数据(200条记录不是那么多)