如何解决将两个或多个SQL结果与PHP动态组合?
| 我经历了几个类似的问题,似乎都没有一个问题可以解决。 我想从是朋友的人中选择所有帖子,然后进行整理。到目前为止,我尝试的所有方法都是逐个朋友完成的,这很烦人,因为它没有在顶部显示最新帖子。 这是我的数据库的结构,省略了所有无关的详细信息: 用户表: UId (Unique UserId)
朋友表:
Person1 | Person2
帖子表:
PostId | AuthorId | Text | DatePosted
AuthorId,Person1和Person2都通过其\“ UId \”链接到用户。
解决方法
这样的事情会起作用:
SELECT p.*
FROM Posts p
JOIN FriendRequests fr
ON fr.from = p.authorid
WHERE fr.accepted = 1
AND fr.to = @myid
ORDER BY p.postdate DESC
,不知道如何构造数据库,这是一个很难回答的问题。
过去,我做过这样的事情(单个查询),但是我的数据库的结构非常好,专门用于此目的。
SELECT * from posts
LEFT JOIN users ON (poster_id=user_id)
WHERE poster_id IN (
SELECT related_id
FROM user_relationships
WHERE user_relationship = \'friend\'
AND user_id = 1
)
ORDER BY post_date DESC
LIMIT 20
添加 -
现在不在MySQL的前面,但是对于OP指定的数据库,它可能看起来像这样:
SELECT * from posts
LEFT JOIN users ON (poster_id=user_id)
WHERE poster_id IN (
SELECT (if(user_idA=\'.$userId.\'),user_idB,user_idA) as related_id,FROM user_relationships
WHERE accepted = TRUE
AND \'.$userId.\' IN (user_idA,user_idB)
)
ORDER BY post_date DESC
LIMIT 20
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。