结合SQL语句

时间:2010-05-24 20:31:12

标签: sql mysql chaining

我有3个表(跟随,帖子,用户)

以下是2个字段 - > profile_id,following_id

张贴有3个字段 - > post_id,profile_id,content

用户有3个字段 - > profile_id,first_name,last_name

我想要匹配的follow.profile_id值为1。

当我运行下面的SQL语句时,我获得了获取正确数据的第一步。但是,我现在想要将此结果集的postss.profile_id与users表进行匹配,以便显示所有列出的帖子中的每个名称(名字和姓氏)。

感谢您的帮助! :)

前:

  SELECT * 
    FROM follows 
    JOIN postings ON follows.following_id = postings.profile_id 
   WHERE follows.profile_id = 1 

4 个答案:

答案 0 :(得分:1)

使用:

  SELECT p.*,
         u.first_name,
         u.last_name
    FROM POSTINGS p
    JOIN FOLLOWS f ON f.following_id = p.profile_id
                  AND f.profile_id = 1
    JOIN USERS u ON u.profile_id = p.profile_id
ORDER BY tweets.modified DESC

答案 1 :(得分:1)

SELECT * 
FROM follows, postings, users
WHERE follows.following_id = postings.profile_id 
AND users.profile_id = follows.profile_id
AND follows.profile_id = 1 
ORDER BY tweets.modified DESC 

答案 2 :(得分:1)

似乎很容易将联接扩展到另一个表......也许我错过了一些问题!

    select 
      f.*,
      p.*,
      u.*
    from 

      follows f

          inner join 
      postings p
          on f.following_id = p.profile_id

          inner join
      users u
          on p.profile_id = u.profile_id


    where follows.profile_id = 1

答案 3 :(得分:1)

使用:

SELECT * 
    FROM follows 
    JOIN postings ON follows.following_id = postings.profile_id 
    INNER JOIN users on postings.profile_id = users.profile_id
   WHERE follows.profile_id = 1 
ORDER BY tweets.modified DESC