Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Muszę uzyskać listę użytkowników, do których wcześniej wysłano wiadomość (MySQL)

Najpierw musisz uzyskać pole user_id w tabeli (wiadomości).Później możesz dołączyć do tej tabeli i napisać select jak :

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

Pokaże później wszystkich użytkowników, którzy wysłali wiadomość.

@AKTUALIZACJA

Jeśli powiedziałeś, że pole outgoing_msg_id wybrany tam identyfikator użytkownika będzie wyglądał następująco:

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

Ten wybór pokaże wszystkich użytkowników, którzy wysłali wiadomość.

@EDYTUJ 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. Włącz obsługę silnika pamięci masowej MySQL InnoDB podczas instalacji XAMPP

  2. Jak przechowywać pustą wartość jako pole całkowite?

  3. Wybierz wszystkie rekordy z jednej tabeli, które nie istnieją w innej tabeli w Laravel 5.1

  4. Połączenie MySQL i Mongodb w aplikacji

  5. Jak przekonwertować skrypt mssql na mysql