Join与WHERE不能正常工作


Join doesnt work properly with WHERE

我遇到了一个问题。我试图让用户知道最后一次操作是在15分钟内。我确信,当我不使用联接时,我的sql是有效的(尝试过),但当我添加join或LEFT、RIGHT或其他join时,我会得到所有用户,而不仅仅是在15分钟内激活。这是我的代码

function get_logged_users() {
global $dbh;
$users_info = $dbh->prepare(
    'SELECT
    users.username as `username`,
    users.id as `id`,
    ranks.style as `style`
    FROM `users` 
    LEFT JOIN `ranks` ON users.rank=ranks.id;
    WHERE users.last_login > ?');
$users_info->execute(array(date("Y-m-d H:i:s" ,strtotime( date("Y-m-d H:i:s")." -15 minutes" ))));
$users_info = $users_info->fetchAll();
return $users_info;

}

有人能帮我吗?:)谢谢

表:用户

排名

这只是WHERE子句前的一个拼写错误:

...
LEFT JOIN `ranks` ON users.rank=ranks.id;  <---
...

不应该有分号(;指向查询的末尾)

试试这个sql-

$users_info = $dbh->prepare(
    'SELECT
    users.username as `username`,
    users.id as `id`,
    ranks.style as `style`
    FROM `users` 
    JOIN `ranks` ON ranks.id=users.rank
    WHERE users.last_login > ?');