使用另一个表中的数据获取一组mysql数据

时间:2011-05-18 01:20:05

标签: php mysql multiple-tables

用户表

  • (用户ID)
  • (用户名)
  • (密码)
  • (电子邮件) 等...

帖子表

  • (AUTHORID)
  • (POSTDATA)

连接表

  • (用户ID)
  • (friendID)

如果subscriptions.userID是user.userID,我想使用subscription.friendID作为posts.authorID获取帖子数据。

这对我来说有点困惑,希望有人可以帮助我。这是我到目前为止,但我也得到了订阅数据。我只想要发布表数据。

 mysql_query("SELECT posts.*, connections.userID, connections.subID FROM posts, connections
        WHERE posts.userID = '$userid' AND posts.userID = connections.subID");

2 个答案:

答案 0 :(得分:0)

如果您只想要发布数据,请执行以下操作:

mysql_query("SELECT posts.* FROM posts, connections
        WHERE posts.userID = '$userid' AND posts.userID = connections.subID");

作为一个多余的注释,如果用户提供$ userid(例如通过HTML表单),请确保至少在将其放入查询之前通过mysql_real_escape_string()运行它。否则,您将容易受到SQL注入攻击。更好的方法是通过PDO或类似的方式使用准备好的声明。

答案 1 :(得分:0)

我在原帖中没有看到连接表,因此我将根据您提供的架构开始工作。

根据您在此处所写的内容,认为您正在寻找类似“从某些用户的朋友那里获取所有帖子”的内容 - 这将是:

     SELECT p.authorID, p.postdata
       FROM posts p
 INNER JOIN subscriptions s ON s.friendID = p.authorID    
      WHERE s.userID = '$userid'

此功能类似于Facebook上的墙功能。

如果您需要更多用户信息,例如用户名,您也可以加入用户表。