mysql - 从 3 个表和 "IN"中选择

标签 mysql sql

我的表:

feeds_time:

user_id | time
1       | 123123
2       | 1231111
3       | 1233223
...

用户关注

user_id | follow_id
1       | 2
1       | 3
2       | 3

还有表格帖子——但这在这个问题中并不重要。

实际上我的查询是这样的:

SELECT `id`, `name`, `user_id`, `time`, 'posts' as `what`
FROM `posts`
WHERE `user_id` IN (SELECT `follow_id`
                    FROM users_follow WHERE user_id = posts.user_id)

现在,我想添加一个 WHERE: WHERE posts.time > feeds_time.time by "current"user_id

我该怎么做?

最佳答案

你可以试试这个

使用连接

SELECT A.`id`, A.`name`, A.`user_id`, A.`time`, A.'posts' as `what`
FROM `posts` A
JOIN feeds_time B ON A.user_id = B.user_id
WHERE A.`user_id` IN (SELECT `follow_id`
                    FROM users_follow WHERE user_id = posts.user_id)
AND A.time > B.time

关于mysql - 从 3 个表和 "IN"中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19549208/

相关文章:

mysql - 从两个表中统计,并按照存在的SQL个数排序

C# 错误,正在执行存储过程,存储过程不可用

mysql - SQL语句where子句中的条件

mysql - 将数据库中的扩展名前的文件名加 1

SQL:如何使用SQL逻辑创建基于不同时间间隔的每日 View ?

sql - 将数据库从单用户模式设置为多用户模式

mysql - 处理 mysql 列中空值的最佳方法

mysql - Laravel/MySql 中的多态与普通数据库设计

java - 如何测试从数据库返回给定类型的所有实体的方法?

php - 如何防止 PHP 中的 SQL 注入(inject)?