【问题标题】:JOIN Query for Specific Table特定表的 JOIN 查询
【发布时间】:2013-08-09 02:54:20
【问题描述】:

我有以下表格:

登录

IDUser (Int) 用户名(变量) 通过(Var)

照片

IdPhoto (Int) 标题(变量) IdUser (Int)

关注

IdUser (Int) followingID(整数)

我正在尝试创建一个查询,从您关注的人那里获取“照片”。

到目前为止,我已经创建了一个查询,可以从服务中的每个人那里获取“照片”:

$query = "SELECT IdPhoto, title, l.IdUser, username FROM photos p JOIN following login l ON (l.IdUser = p.IdUser) WHERE following.followingID = following.userID ORDER BY IdPhoto DESC LIMIT 50;

任何帮助将不胜感激。

【问题讨论】:

  • followingID 是否链接到您关注的人的 Photos IdUser?
  • 呵呵@Fred 我不明白你的意思
  • followingID 是否持有在照片和登录表中找到的 IDUser?

标签: php mysql database join


【解决方案1】:
SELECT p.*, l.IdUser, l.username 
FROM following f 
LEFT JOIN login l ON f.followingID = l.IDUser 
LEFT JOIN photos p ON p.IdUser = l.IdUser 
WHERE f.idUser = 1 
LIMIT 50

在本例中,这应该获取用户 id = 1 的人的照片。

【讨论】:

  • f.IdUser 是你表中的字段,叫做following,不是你描述的吗?
  • 是的,但这不起作用。 f.IdUser 是我关注的用户的 ID 还是我自己的 ID?
  • 这里有些列名写错了可能不行,可以看一下错误,或者更准确的描述一下你的db。
  • 这正是我的数据库的样子。它们都是带有信息的单独表格。 SELECT p.* 是什么?
  • 我假设 f.IdUser 是您的 ID,而 followingID 是您关注的人的 ID。我不知道这是你的设计。
猜你喜欢
  • 2011-03-25
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多