使用一个mysql的结果进行第二次查询

时间:2009-06-02 15:03:48

标签: php mysql

我有两张桌子:

  • 帖子 - 保留帖子信息
  • listen - 保存您正在收听的其他用户的信息。 (您想要查看的用户帖子)

listen的结构是:

  • id(uniqueid)
  • userid(用户唯一ID)
  • listenid(他们正在听的用户的ID)

我如何收集来自监听活动用户userid的所有条目,然后使用这些条目查找匹配任何找到的listenid值的所有帖子,以便创建我想要查看的组合用户帖子的查询?

4 个答案:

答案 0 :(得分:1)

SELECT  posts.*
FROM    listen
JOIN    posts
ON      posts.userid = listen.listenid
WHERE   listen.userid = @current_user

答案 1 :(得分:1)

您可以使用简单的自然联接或其他答案中给出的直接联接来执行此操作。

select 
  *
from 
  posts, listen 
where 
  listen.userid == $active_user and 
  posts.userid = listen.userid

您可能希望对所引入的列更具选择性。

答案 2 :(得分:0)

我认为你在谈论这样的事情:

select postid from posts 
where userid in
(
    select listenid from listen
    where userid = CURRENT-USER
)

这是假设表格帖子有一个用户ID字段。

答案 3 :(得分:0)

一个简单的联接不起作用?

select 
 posts.* 
from 
 posts
inner join 
 listen
on 
 listen.listenID = posts.userID
where 
 listen.userID = ACTIVEUSER