Mysql比较行之间的嵌套数据

时间:2018-02-08 20:12:55

标签: php mysql sql

我有一张包含多个数据的表格。 基本上有很多记录,每个记录包含uniqueid,postid,posttype和rank:

sample data

现在我感兴趣的是一个posttype = 1且排名大于同一个postid且posttype = 2的postid 基本上是:

select * from data where postid=254454 and posttype=1 and rank > same post id but posttype=2 and smaller rank

希望我明白任何帮助表示赞赏谢谢

1 个答案:

答案 0 :(得分:0)

你必须在同一张桌子上进行连接以检查你的情况,然后选择第二个(d2)。

select d2.* 
from data d1
inner join data d2 on d2.postid=d1.postid and d2.posttype=2 and d2.rank<d1.rank
where d1.postid=254454 and d1.posttype=1;

输出:

+----------+--------+----------+------+
| uniqueid | postid | posttype | rank |
+----------+--------+----------+------+
|        2 | 254454 |        2 |    2 |
+----------+--------+----------+------+