2013-04-20 3 views
0

У меня есть сайт с twitter для изучения, где вы можете следить за пользователями. Теперь я хочу, чтобы все пользователи, которые следовали за собой, вошли в систему.Получить идентификатор пользователя из разных таблиц

Следующая таблица имеет три строки. идентификатор, user_id, follow_id

Теперь, если пользователь 1 Что следовать пользователю 2. значения в строках будет user_id = 1, follow_id= 2

Но когда я пытаюсь принести пользователей, которые имеют один и тот же follow_id, я получаю только user_id 2 взамен. И не все пользователи, у которых есть follow_id = 2

Любая идея?

SELECT 
    user.id, user.username, user.email, 
    userdetails.profile_img, following.follow_id 
FROM 
    user 
JOIN 
    userdetails ON user.id = userdetails.user_id 
JOIN 
    following on user.id = following.follow_id 
WHERE 
    following.follow_id = 2 

Это как моя таблица выглядит

Following 
id | user_id | follow_id 

Tweets 
user_id|id|date|message 

user 
id|email|password|username 

userdetails 
id|firstname|lastname|profile_img|user_id|about 

Любые советы?

+0

Это * Kwetter *? – Rob

+0

, в котором у вас есть оба столбца 'userid' и' followId'? – Sachin

+0

@Sachin Я обновил свой вопрос со столом. – Dymond

ответ

2

Изменение JOIN following on user.id = following.follow_id с JOIN following on user.id = following.user_id.

SELECT 
    user.id, user.username, user.email, 
    userdetails.profile_img, following.follow_id 
FROM 
    user 
JOIN 
    userdetails ON user.id = userdetails.user_id 
JOIN 
    following on user.id = following.user_id 
WHERE 
    following.follow_id = 2 
+0

Я почти уверен, что я попробовал это. ха-ха, застрял на некоторое время. хорошо работа сейчас !. Большое спасибо, друг мой. – Dymond

1

Попробуйте

SELECT * FROM Following 
INNER JOIN Users on Following.UserId=Users.Id 
INNER JOIN UsersDetails on Users.Id=UserDetails.UserId 
where [email protected] 

из курса вы можете выбрать столбец, как вы хотите.

1
SELECT user.id, user.username,user.email, 
userdetails.profile_img, following.follow_id FROM user JOIN userdetails 
ON user.id = userdetails.user_id JOIN following 
ON user.id = following.follow_id WHERE following.follow_id = 2 

Чтобы получить все идентификаторы пользователей, которые подбираются к follow_id = 2:

SELECT user_id from following where follow_id = 2; 

(я бы изменить их имя user_id столбца в следующей таблице follower_id)

также получать данные из таблицы пользовательских таблиц, связанной с user_id:

SELECT userdetails.*, user.* FROM userdetails JOIN users 
ON user.id = userdetails.user_id JOIN following 
ON user.id = following.***user_id*** WHERE following.follow_id = 2; 

Посмотрите, работает ли это, я думаю, ваша проблема в том, что вы присоединились к следующему. follow_id пользователю, а не following.user_id