簡體   English   中英

SQL查詢從兩個表中獲取不同的記錄

[英]SQL Query to get different records from two tables

我的數據庫中有兩個表,一個是 User 並包含 user_id,第二個是 user_follower,它包含 user_id 和 follower_id(其他用戶的 user_id)。 我想獲取用戶列表,但不想讓當前用戶的 user_follower 表中已有的用戶進入其中。 例如,我有 user_id 1 並想為此獲取用戶列表,我希望所有不在 user_followers 中的用戶作為關注者。 有人可以幫助我嗎? 請。

我試過了

select user_id from user
MINUS
select user_id from user_followers 

但我在這方面出錯,msql 不支持它

您可以在 where clouse 中使用子查詢來過濾多個表中的數據

SELECT t.user_id from user t
     WHERE NOT IN(SELECT uf.user_id FROM user_followers uf
                 WHERE uf.user_id = t.user_id);

試試這個查詢,它會幫助你

SELECT `user`.`user_id` FROM `user`  WHERE `user`.`user_id` NOT IN( select `user_id` from `user_followers`) 

使用JOIN

select U.user_id from user U
INNER JOIN user_followers UF ON U.user_id = UF.user_id

試試下面的查詢:

$users_list = $this->db->select("u.*",FALSE)
    ->from("user u")
    ->join("user_follower uf","u.user_id != uf.user_id")
    ->get();

//The query is:
//SELECT u.* FROM user u INNER JOIN user_follower uf ON (u.user_id != uf.user_id)

查看結果:

 print_r($users_list->result_array());

使用子查詢

select user_id from `user` where user_id not in (select user_id from user_followers)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM