我正在使用php mysql,我加入了3个表:demanddraft
,payonline
和registration
。现在我想根据校园课程和考试日期从这三个表中获取值。
注册表有三个字段:campus1
,course1
和examdate
,根据这些字段我们必须从表 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."'";
提前感谢您的帮助。
答案 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条记录不是那么多)