sql >> Database >  >> RDS >> Mysql

Ik heb de lijst nodig met gebruikers die eerder een bericht hebben ontvangen (MySQL)

Eerst moet je het veld user_id in de tabel (berichten) krijgen. Later kun je lid worden van deze tabel en schrijven selecteren als:

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

Het zal later alle gebruikers tonen die een bericht hebben verzonden.

@UPDATE

Als je het veld outgoing_msg_id . zei is het gebruikers-ID dat daar wordt geselecteerd, ziet er als volgt uit:

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

Deze selectie toont alle gebruikers die een bericht hebben verzonden.

@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. Hoe bewerk ik een tabel om CASCADE DELETE in te schakelen?

  2. Hoe het bestaan ​​van de gegevens van twee kolommen in twee verschillende tabellen te controleren? MySQL

  3. Oracle Database Testing Challenge - Schemagegevens vergelijken

  4. ScaleGrid DBaaS breidt MySQL-hostingservices uit via AWS Cloud