我在 SQL 查询中得到多个结果。我有三个表:付款、信用和费用。在每个月末,我需要根据帐户持有人(我们称之为所有者)进行余额转发,我尝试了不同的查询,但不断收到重复的行。我知道这与我的WHERE
条款,但我不知道如何解决它。
在我的测试数据中,我有一条记录payments
:
owner
: 1001
date
:2014-03-23amount
: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()
on the amount
从每个表中添加日期WHERE
条款。
不过,首先我需要解决这个问题。谢谢你的帮助。
编辑:我做了一个SQL小提琴 http://sqlfiddle.com/#!2/f0c4d/1/0的表。这些名称不太通用。我实际上正在使用unit
, not owner
。虽然这真的没关系。
试试这个
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
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)