SQL Query从两个表中获取不同的记录

时间:2016-05-24 08:55:36

标签: php mysql codeigniter

我的数据库中有两个表,一个是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

不支持

5 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:1)

尝试此查询,它会帮助您

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

答案 2 :(得分:0)

使用JOIN

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

答案 3 :(得分:0)

尝试以下查询:

$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());

答案 4 :(得分:0)

使用子查询

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