我在SQL查询中获得了多个结果。我有三张桌子:付款,信用和收费。在每个月末,我需要根据帐户持有人进行余额转发(让我们打电话给所有人)我尝试过不同的查询,但不断获取重复行。我知道这与我的WHERE
条款有关,但我不知道如何修复它。
在我的测试数据中,我有payments
的一条记录:
owner
:1001
date
:2014年3月23日
amount
:50.00
我从查询中返回3条记录:
SELECT p.amount
FROM payments p, charges ch, credits cr
WHERE (p.owner = 1001 AND ch.owner = 1001 AND cr.owner = 1001)
我知道这不对,但我不知道查询它的正确方法。我只想返回一行。最后,我将在每个表的SUM()
上使用amount
,并在WHERE
子句中添加日期。
首先,我需要解决这个问题。谢谢你的帮助。
unit
,而不是owner
。虽然这不重要。
答案 0 :(得分:1)
试试这个
SELECT p.amount
FROM payments p, charges ch, credits cr
WHERE (p.owner = 1001 AND ch.owner = 1001 AND cr.owner = 1001 AND p.owner=ch.owner AND
p.owner=cr.owner
)
答案 1 :(得分:0)
您可以使用
进行限制SELECT p.amount 从付款p,收费ch,信用cr WHERE(p.owner = 1001 AND ch.owner = 1001 AND cr.owner = 1001) 限制1
或者在任何情况下,这三个表中的一个有所有者1001的三个记录,这就是为什么它显示三个。如果你能从这三个表中给出1001的数据,那就更好了,所以我们可以看到