php - MySQL 循环或嵌套查询

标签 php mysql loops nested

假设我有一 table friend

user_1  |  user_2  

然后,假设我想看看这些 friend 在做什么,所以我检查帖子表和更新表

post_id  | post_title | post_message |  user_id | timestamp

update_id | title | userid | timestamp

我想实现如下逻辑:获取好友列表,浏览生成的好友列表,看看他们是否添加了任何内容,首先按最近的事件(时间戳)排序。

Select user_1 from friends where user_2 = '$my_userid'
union
Select user_2 from friends where user_1 = '$my_userid'

//now loop through each of these friends and check the update/post tables to see if they have added anything recently

我可以通过 1 个 MySQL 查询来完成这一切,还是必须将其分解并使用 PHP?

最佳答案

帖子 ID |帖子标题 |发布消息 |用户 ID |时间戳 - Table_A

更新ID |标题 |用户 ID |时间戳 - Table_B

尝试以下查询

SELECT A.*, B.* FROM Table_A AS A JOIN Table_B AS B ON B.userid = A.user_id
WHERE A.user_id IN (100,101,102) 
ORDER BY B.timestamp DESC;

A.* - 将为您获取表 A 中的所有列。如果您想要特定列 A.post_id

您可以通过添加 LIMIT 子句来计算结果数量。

注意:我假设 100,101,102 是生成的用户 ID。您可以在 IN 子句中添加用户 ID。

更新

如果你想限制好友,请将你需要的用户 ID 放在 IN 子句中。如果不删除where子句,那么您就可以不受限制地获取所有好友的更新。您可以按您需要的任何列进行订购。您可以执行 ORDER BY A.user_id , A.post_id ,甚至可以多列

关于php - MySQL 循环或嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665583/

相关文章:

php - SQL 查询应该返回任何结果但没有返回任何结果

php - 如何正确地将数据保存到数据库?

php - 在图像下方添加文本,输出取决于输入语言?

php - 从 PHP 对象中获取所有以子字符串开头的方法名称

php - 用php多维数组填充html表

java - 固定时间后中止循环

c - 使用循环来知道“对象在 c 中何时过去

java - 如何要求多个输入并在用户输入 0 时停止?

PHP fatal error : Call to undefined function imagettftext()

php - 获取属性变体中的颜色代码 Woocommerce