我有两个mysql表members_tbl和post_tbl
members_tbl:
id | userName | fname | lname | friendArray
post_tbl:
帖子ID |记住| thePost | postDate
现在,我正在尝试显示来自用户ID和来自他的friendArray的帖子。 请让我知道怎么做(仍然是php的新手)
答案 0 :(得分:0)
为您的朋友关系创建一个不同的表,然后在SQL中加入此表。
答案 1 :(得分:0)
由于MySQL缺少explode
函数,您需要创建关系表并使用连接,或者在中间使用php处理多个查询。我强烈推荐关系方法,因为它符合数据库标准(规范化),而不是替代方案,并且更容易实现。
你需要第三张表,它描述了两个朋友之间的关系,I.E。
friends_tbl
user1_id | user2_id
使用user1_id
和user2_id
上的主键(从而防止重复)。对于每一个朋友关系,I.E。用户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上述内容。