sql >> Databáze >  >> RDS >> Mysql

Potřebuji získat seznam uživatelů, kterým byla dříve zaslána zpráva (MySQL)

Nejprve musíte získat pole user_id v tabulce (zprávy). Později se můžete připojit k této tabulce a napsat select jako :

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

Později se zobrazí všichni uživatelé, kteří zprávu odeslali.

@AKTUALIZACE

Pokud jste řekli pole outgoing_msg_id je ID uživatele, které vyberete, bude vypadat takto:

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

Tento výběr zobrazí všechny uživatele, kteří odeslali zprávu.

@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. MariaDB se po aktualizaci nemůže spustit:[Upozornění] Nelze vytvořit testovací soubor /home/mysql/beta.lower-test

  2. Ověření se nezdařilo pro dotaz na metodu JPQL

  3. Jak zadat název primárního klíče v EF-Code-First

  4. Převod mezi datovými typy data a času na serveru SQL (příklady T-SQL)