Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi cần lấy danh sách những người dùng đã được gửi tin nhắn trước đó (MySQL)

Đầu tiên bạn cần lấy trường user_id trong bảng (tin nhắn). Sau đó, bạn có thể tham gia bảng này và viết select như:

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

Nó sẽ hiển thị sau đó cho tất cả những người dùng đã gửi tin nhắn.

@UPDATE

Nếu bạn đã nói trường outgoing_msg_id id người dùng ở đó chọn sẽ như thế này:

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

Lựa chọn này sẽ hiển thị tất cả người dùng đã gửi tin nhắn.

@EDIT 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. Làm cách nào để tạo một lớp mô hình thực thể chung hỗ trợ id chung bao gồm id được tạo tự động?

  2. python MySQLDB truy vấn hết thời gian chờ

  3. Hàm MySQL RADIANS () - Chuyển đổi từ độ sang Radian

  4. Làm cách nào để đặt global event_scheduler =ON ngay cả khi MySQL được khởi động lại?

  5. Cardinality trong MySQL là gì?