У меня есть 2 таблицы: пользователи и лог. В настоящее время мой запрос выглядит так.
$stmt = $this->db->prepare("SELECT u.id, u.email, u.salt, u.pass, u.approved, u.ban, u2.status FROM `users` AS u LEFT OUTER JOIN `log` AS u2 ON u2.user_id = u.id WHERE u.email = ?") or die($this->db->error);
$stmt->bind_param("s", $_POST['email']) or die($stmt->error);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == 0) {
die($this->ajax->respond(7));
}
$data = array();
$stmt->bind_result($data['id'], $data['email'], $data['salt'], $data['pass'], $data['approved'], $data['ban'], $data['status']) or die($stmt->error);
$stmt->fetch() or die($stmt->error);
$stmt->close() or die($stmt->error);
Столбец состояния таблицы журнала - указывает, вошел ли пользователь в систему или нет. Я хочу проверить, существует ли электронная почта в таблице users
и подсчитать строки таблицы log
, где status=1
. Это возможно с одним и единственным запросом?
Другими словами:
Вот таблица журнала
![enter image description here](https://i.stack.imgur.com/r6Qc0.png)
Посмотрите на строки, в которых статус = 1. Это указывает на то, что пользователь 1 в настоящее время выполнил вход. Чтобы предотвратить повторный вход в другой браузер, я хочу сначала проверить электронную почту в таблице пользователей (базовая процедура входа) и в этот момент проверить если пользователь не вошел в систему (путем подсчета строк, где статус = 1 в таблице журнала)