-1

我有两个 mysql 表 members_tbl 和 post_tbl

members_tbl:

id|用户名 |fname |lname |friendArray

post_tbl:

邮编| 内存ID | thePost |发布日期

现在,我正在尝试显示来自用户 ID 和他的friendArray 的帖子。请让我知道该怎么做(对php还是新手)

4

2 回答 2

0

由于 MySQL 缺少一个explode函数,您要么需要创建一个关系表并使用连接,要么使用多个查询并在其间使用 php 处理。我强烈推荐关系方法,因为它比替代方法更符合数据库标准(规范化)并且更容易实现。

你需要第三张表,它描述了两个朋友之间的关系,IE

friends_tbl
user1_id | user2_id

使用主键user1_iduser2_id(从而防止重复)。对于每一个好友关系,IE 用户 1 与用户 2 是好友,此表只有一行。然后,您可以使用以下查询获取所需的列表。

SELECT p.*, u.*
FROM posts_tbl p
INNER JOIN members_tbl u
  ON u.id = p.memId
WHERE u.id IN (
  SELECT user2_id AS id
  FROM friends_tbl
  INNER JOIN members_tbl
  ON (user1_id = id)
  WHERE members_tbl.id = $id

  UNION

  SELECT user1_id AS id
  FROM friends_tbl
  INNER JOIN members_tbl
  ON (user2_id = id)
  WHERE members_tbl.id = $id
)
ORDER BY p.postDate

上面的SQLFiddle

于 2013-07-24T17:39:15.900 回答
0

为你的朋友关系创建一个不同的表,然后在你的 SQL 中加入这个表。

于 2013-07-24T17:21:59.950 回答