Mysql
 sql >> база данни >  >> RDS >> Mysql

Трябва да получа списъка с потребители, на които преди това е изпратено съобщение (MySQL)

Първо трябва да получите поле user_id в таблицата (съобщения). По-късно можете да се присъедините към тази таблица и да напишете select като :

select * from users usr
join messages msg on msg.user_id = usr.user_id
where msg.incoming_msg_id is not null

По-късно ще покаже всички потребители, изпратили съобщение.

@АКТУАЛИЗИРАНЕ

Ако сте казали полето outgoing_msg_id е избраният от там потребителски идентификатор ще бъде така:

select DISTINCT usr.user_id,usr.fname,usr.lname from users usr
join messages msg on msg.outgoing_msg_id = usr.user_id

Този избор ще покаже всички потребители, изпратили съобщение.

@РЕДАКТИРАНЕ 3

So your php code should be like :

<?php
    session_start();
    include_once "config.php";
    $outgoing_id = $_SESSION['unique_id'];
    $sql = "SELECT * FROM users WHERE NOT unique_id = {$outgoing_id} and unique_id in (select outgoing_msg_id from messages)  ORDER BY user_id DESC";
    $query = mysqli_query($conn, $sql);
    $output = "";
    if(mysqli_num_rows($query) == 0){
        $output .= "No users are available to chat";
    }elseif(mysqli_num_rows($query) > 0){
        include_once "data.php";
    }
    echo $output;
?>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя изхода от mysqldump на по-малки файлове?

  2. Създаване на лицензионна система

  3. Python MySql Insert не работи

  4. Извличане на данни с йерархична структура в MySQL

  5. Случаят на Mysql не работи