组
用户表
密码
$c=date(y-m-d);
$a=$_REQUEST['user'];
$b=$_REQUEST['pass'];
$c=date(y-m-d);
$sql="SELECT username,password,validity FROM usertable,groups WHERE username='$a' AND password='$b' AND validity > (select validity,groupname from groups where groups.groupname = usertable.groupname)";
如何在PHP中编写子查询,根据与username
相关的passoword
,从usertable
validity
和groups
检查groupname
,username
来自usertable
的{1}}。
答案 0 :(得分:1)
我认为这会引发错误?将列与子选择进行比较时,两侧应具有相同数量和相同类型的列。
您在此处比较了无效的validity > validity,groupname
"SELECT username,password,validity
FROM usertable,groups
WHERE username='$a' AND password='$b'
AND validity > (select validity from groups where groups.groupname = usertable.groupname)"
请注意,如果子查询返回多行,则应使用聚合函数或其他内容来确定应返回哪个值,如MAX(validity)
答案 1 :(得分:1)
我认为你正在寻找这个。使用join
$sql = "SELECT username,password,validity
FROM usertable a join groups b on a.groupname=b.groupname
WHERE username='$a' AND password='$b'
AND validity > '$c'"
答案 2 :(得分:0)
我想你想根据用户所属的群体找出用户的有效性。
$sql = "select u.username, u.password, g.validity from usertable u, groups g where u.groupname = g.groupname and u.username = '$a' and u.password = '$b'";