mysql - 获取与同一个表中的另一个属性匹配的所有行

标签 mysql

我有这个表(称为posts):

+---------+----------+---------+
| post_id | reply_to | user_id |
+---------+----------+---------+
|       1 |        0 |       1 |
|       2 |        0 |       1 |
|       3 |        2 |       2 |
|       4 |        1 |       3 |
|       5 |        3 |       2 |
+---------+----------+---------+

如何选择对 user_id = 1 帖子进行回复的所有帖子?

生成的表格应如下所示:

+---------+----------+---------+
| post_id | reply_to | user_id |
+---------+----------+---------+
|       3 |        2 |       2 |
|       4 |        1 |       3 |
+---------+----------+---------+

最佳答案

这是快速变体:

select *
from posts
where reply_to in (select post_id from posts where user_id = 1);

因此,内部查询选择用户的所有帖子,外部查询选择对这些帖子的所有直接回复

关于mysql - 获取与同一个表中的另一个属性匹配的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713851/

相关文章:

mysql - 如何指定 GROUP BY 的顺序?

c# - 使用 DataGridViewCheckBoxColumn 更新 DatagridView

mysql - 单个事务中多个 ALTER TABLE 语句的问题

mysql - MySQL 中的 ROW_NUMBER()

mysql - Sqoop 将数据从 MySQL 表复制到分区的 Hive 表

mysql - 无法导入名称 'Datetime' python flask sqlalchemy

mysql - SELECT with WHERE IN 和子查询非常慢

java - 如何避免 TomEE 的 JDBC 连接池的数据库连接停滞?

php - session 处理类奇怪的行为

Python mysql-connector 多插入不起作用?