我在mysql phpmyadmin中有两个表
1)参加
2)出席
这是一张表
attend table
_____________________________________________________
user_name | date | checkin
abcd | 10-5-2015 | 2:00
xyz | 10-5-2015 | 3:00
attendout table
_____________________________________________________
user_name | date | checkout
abcd | 10-5-2015 | 5:00
xyz | 10-5-2015 | 6:00
我想要这样的结果
_____________________________________________________
User | Date | Check in | Check out
abcd | 10-5-2015 | 2:00 | 5:00
xyz | 10-5-2015 | 3:00 | 6:00
这里是mysql代码
$result1 = mysql_query("SELECT attend.user_name,attend.date,attend.checkin, attendout.checkout ".
"FROM attend, attendout ".
"WHERE attend.date BETWEEN '$a' AND '$b' = attendout.date BETWEEN '$a' AND '$b'");
PLZ帮我修复它
答案 0 :(得分:1)
这是一个简单的连接:
SELECT attend.user_name,attend.date,attend.checkin, attendout.checkout ".
"FROM attend join attendout on attend.user_name=attendout.user_name ".
"WHERE attend.date BETWEEN '$a' AND '$b' = attendout.date BETWEEN '$a' AND '$b'
但请停止使用已弃用的mysql_
API使用mysqli_*
或PDO
准备好的语句。
答案 1 :(得分:1)
如果系统中始终有一个1-1条目,即一个日期签入结账一个条目,那么您应该尝试左连接,如下所示
SELECT at.user, at.date, at.checkin, ao.checkout from attend at LEFT JOIN attendout ao ON at.date = ao.date
where条件也是可选的。您可能会也可能不会添加它。
答案 2 :(得分:0)
你必须使用内连接。
SELECT * FROM attend
INNER JOIN attendout
ON attend.user_name=attendout.user_name
ORDER BY attend.user_name
答案 3 :(得分:0)
它可以正常工作
criteria(R,[_,_,N1],[_,_,N2]) :- N1=\=N2, !, compare(R,N2,N1).
criteria(R,E1,E2) :- compare(R,E1,E2).