2016-05-24 3 views
2

У меня есть две таблицы в моей БД, одна - это User и содержит user_id, вторая - user_follower, и это содержит user_id и follower_id (user_id другого пользователя). Я хочу получить список пользователей, но не хочу, чтобы тот пользователь в нем, который уже находится в таблице user_follower для текущего пользователя. например, у меня есть user_id 1 и хочу получить список пользователей для этого, я хочу, чтобы все пользователи, которых нет в user_followers, являются последователями. Может кто-нибудь мне помочь в этом. пожалуйста.SQL-запрос для получения разных записей из двух таблиц

я попытался

select user_id from user 
MINUS 
select user_id from user_followers 

, но я получаю ошибку на этом, не поддерживается Msql

+1

что вы пробовали? можете ли вы показать нам какой-то код? – rsz

+0

Добро пожаловать в SO. Пожалуйста, прочитайте [Какие темы я могу задать] (http://stackoverflow.com/help/on-topic) и [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to -ask) И [идеальный вопрос] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO ** не является бесплатным кодированием или преобразованием кода или учебник или поиск библиотеки ** Вы также должны показать, что приложили определенные усилия для решения своей проблемы. – RiggsFolly

+0

@rsz вы теперь видите мой вопрос, я отредактировал –

ответ

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

спасибо, это работает для меня –

0

Использование JOIN.

select U.user_id from user U 
INNER JOIN user_followers UF ON U.user_id = UF.user_id 
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()); 
0

Использование Sub Query

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

Попробуйте T его запрос, он поможет вам

SELECT `user`.`user_id` FROM `user` WHERE `user`.`user_id` NOT IN(select `user_id` from `user_followers`) 
Смежные вопросы