2013-06-03 6 views
1

У меня есть таблица из следующих/последователей, который имеет 3 поля:«ГДЕ» Заявление из другой таблицы

id , FollowingUserName,FollowedUserName

И у меня есть таблица с постами:

id,Post,PublishingUsername 

И мне нужен запрос, который возвращает определенные поля из сообщения

, но «где» будет где:

  • PublishingUsernam из постов будет соответствовать FollowedUserName От Following/Followers Таблицы
  • And The FollowingUserName будет Записан На UserName.

ответ

0

Всего сообщений:

select p.* from posts p where p.PublishingUsername in 
(select FollowedUsername from followers) 
and p.PublishingUsername = LOGGEDINUSER 

Или вы могли бы использовать присоединиться:

select p.* from posts p 
left join followers f on f.PublishingUsername = p.PublishingUsername 
and p.publishingUsername = LOGGENINUSER 
+0

Спасибо, что он работает – user2436536

0

Вы ищете JOIN это похоже. В принципе, вы хотите выбрать из своей таблицы сообщений, где имя пользователя публикации = следующее имя пользователя, а также имя_следующего_имя = loggedin.

Просто с ножом (так как я не имею сервера SQL здесь прямо сейчас), но это может выглядеть следующим образом:

SELECT * FROM Posts INNER JOIN Following ON Posts.PublishingUsername = Following.FollowedUserName WHERE FollowingUserName = LoggedInName

0

Без JOIN Вы можете:

SELECT * FROM Posts p, Followers f 
WHERE 
    f.FollowingUserName = 'LoggedInUserName' 
    AND f.FollowedUserName = p.PublishingUsername 
+0

Вопрос о SQL - будет выше заявление фактически приводит к неявным JOIN? Похоже, это было бы, даже если оно не указано. – SubSevn

0
SELECT 'fields'  
FROM TABLE1 INNER JOIN TABLE2 
ON TABLE1.FollowedUserName = TABLE2.PublishingUsername 
WHERE FollowingUserName = 'myvalue' 
0

Использование уборщик Регистрация Синтаксис

SELECT * 
FROM following f 
JOIN posts p ON p.PublishingUsername = f.FollowedUsername 
AND f.FollowingUserName = LOGGED_IN; 
Смежные вопросы