Как добавить внутреннее соединение или левое соединение в PHP mysql
я создаю скрипт подсчета непрочитанных сообщений в php mysqli. я добавил inner join sql к своему существующему коду, который отображает все сообщения пользователей как одно и то же непрочитанное сообщение. я хочу знать, как присоединиться к таблице inner join или left join users с помощью таблицы pm.
пример такой
user1 unread 4 user2 unread 4 user3 unread 4
я хочу показать вот такие результаты
user1 unread 4 user2 unread 7 user3 unread 2
мой ПМ таблице базы данных
id from_id to_id msg sent_date read 1 2 3 hi how are you? 2019-12-05 04:14:20 1 2 3 2 fine 2019-12-05 05:15:58 0 3 2 3 hi 2019-12-05 03:20:34 1 4 5 2 hi 2019-12-05 08:30:40 0
пользовательская таблица
userid username 2 previn 3 raj 5 rajesh
Вот мой код
<?php if (isset($_SESSION['userid'])) { $session_id = $_SESSION['userid']; } $sql = "SELECT *, (SELECT username FROM users WHERE userid=from_id) AS from_username, (SELECT username FROM users WHERE userid=to_id) AS to_username, (SELECT username FROM users WHERE userid=?) AS my_username, (SELECT count(*) unread from users INNER JOIN pm ON pm.from_id=users.userid where to_id=? and read=0)as unread FROM pm WHERE from_id = ? or to_id=? ORDER BY id DESC"; if ($stmt = $con->prepare($sql)) { $stmt->bind_param('iiii', $session_id, $session_id,$session_id,$session_id); $stmt->execute(); } $result = $stmt->get_result(); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo $row['from_username'] . " -> " . $row['to_username'] . "<br>"; echo 'User ' . $row['from_id'] . ' - ' . $row['unread'] . "<br>"; } } ?>
Что я уже пробовал:
Я пробовал здесь внутреннее соединение
(SELECT count(*) unread from users INNER JOIN pm ON pm.from_id=users.userid where to_id=? and read=0)as unread