【问题标题】:Using JOIN to show friends posts使用 JOIN 显示朋友的帖子
【发布时间】:2013-04-10 10:29:59
【问题描述】:

在过去的几天里,我一直在尝试创建一个 SQL 查询来显示朋友之间的帖子。但是,我无法弄清楚我做错了什么。对我来说,这些帖子似乎在重复,并且表现与我的意图不同。

此查询“应该”显示来自我和与我成为朋友的用户的帖子。

SELECT *
FROM bhost_entries
WHERE
  author_u_id='$user_info[u_id]'
  OR author_u_id IN (SELECT follower_u_id
                     FROM bhost_userfollow
                     WHERE following_u_id='$user_info[u_id]')
ORDER BY e_id DESC

表格:

bhost_entries:     e_id, author_u_id, title
bhost_userfollow:  uf_id, following_u_id, follower_u_id

我完全偏离轨道了吗?欣赏任何想法。

输出(关注 2 个用户时)

Heihei
Aker Brygge-spesial
Vi har oppdatert retningslinjene
Hei, dette er en kladd!
To do list
Testinnlegg
Push Notifications
Californication
Hank Moody
Hei bloggen
Heihei
Aker Brygge-spesial
Vi har oppdatert retningslinjene
Hei, dette er en kladd!
To do list
Testinnlegg
Push Notifications
Californication
Hank Moody
Hei bloggen

【问题讨论】:

  • 你能告诉我们你得到的输出吗?你觉得这看起来不对?
  • 什么意思?我该怎么做? @Borniet
  • 运行查询,然后将输出复制并粘贴到您的答案中(假设结果不是很长)。
  • SELECT * FROM bhost_entries LEFT JOIN bhost_entries ON (bhost_userfollow.following_u_id = bhost_entries.author_u_id) WHERE (bhost_entries.author_u_id = '$userinfo[uid]') 呢?
  • 类似的东西?截至目前,我正在关注 2 个用户,这是输出。 @MarkBannister

标签: php mysql join


【解决方案1】:

如果我可以测试它,我会这样做:

SELECT e_id, author_u_id, title
FROM bhost_entries, bhost_userfollow
WHERE
  author_u_id='$user_info[u_id]'
  OR (follower_u_id='$user_info[u_id]' AND following_u_id=author_u_id)
ORDER BY e_id DESC
GROUP BY e_id

【讨论】:

  • 每个帖子都会重复。有什么线索吗?
  • 这意味着它有效吗?我添加了一个 group by 以避免重复。
【解决方案2】:

你可以试试这样的:

SELECT DISTINCT (e.e_id) AS entry_id,
       e.title AS entry_title, 
       e.author_u_id AS author_id
FROM bhost_entries AS e
JOIN bhost_userfollow AS f
ON (f.following_u_id = e.author_u_id) 
WHERE (e.author_u_id = '$user_info[u_id]' OR f.follower_u_id = '$user_info[u_id]')

如果我理解正确,它就可以解决问题。在这里查看:SQL Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-14
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    相关资源
    最近更新 更多