我在sql中有一个如下所示的表:
[
现在,我需要基于2个条件的结果表:
上一个事务id应与事务id匹配
只有那些条目应该出现在金额值的mod不相等的地方。
结果表应如下所示:
因此,在结果表中,我不希望transaction\u id为104的行,因为amount的mod是相同的$付了1美元,还了1美元。
我可以做它的第一部分,但不能做第二部分,因为我是新的sql。这是我第一部分的代码:
select * from sample_table
where prev_trans_id in
(select transaction_id from sample_table)
如果我能把第二个条件也合并到同一个查询中,那将非常有帮助。
2条答案
按热度按时间b1zrtrql1#
使用
JOIN
,不是IN
```SELECT t1.*
FROM sample_table AS t1
JOIN sample_table AS t2
ON t1.prev_trans_id = t2.transaction_id AND t1.amount != -1 * t2.amount
wgmfuz8q2#
这里不需要使用子查询,因为它可以通过基本查询实现
select ... from ... where ...
查询table1
以及table2
. 请参见以下查询: