php - MySQL Select from 3 tables and get attendance In and Out Time for all Members in specific date -


i have 3 table this:

members_tbl id | fullname | email | mobileno  attendance_in_tbl  id | member_id | datetimein  attendance_out_tbl id | member_id | datetime_out 

i want select members date: 2014-03-10 query:

select attendance_in.edatetime, members_info.mfullname, attendance_out.odatetime attendance_in left join members_info on members_info.id = attendance_in.memid left join attendance_out on attendance_out.memid = attendance_in.memid date(attendance_in.edatetime) or date(attendance_out.odatetime) = "2014-03-10" 

but give me different results in attendace_out results

you have mistake in query.

you wrote:

 date(attendance_in.edatetime)   /* wrong! */     or date(attendance_out.odatetime) = "2014-03-10" 

this wrong, first expression date(attendance_in.edatetime) evaluates true.

you may want

where date(attendance_in.edatetime) = "2014-03-10"    or date(attendance_out.odatetime) = "2014-03-10" 

but, guaranteed perform poorly when attendance_in , attendance_out tables large, because have scan them; can't use index.

you may find performs better write this:

where (attendance_in.edatetime  >='2014-03-10' ,        attendance_in.edatetime  < '2014-03-10' + interval 1 day)    or (attendance_out.edatetime >='2014-03-10' ,        attendance_out.edatetime < '2014-03-10' + interval 1 day) 

that check whether either checkin our checkout time occurs on day in question.


Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -