2014-09-26 122 views
0

我需要做两个表的左连接:借记和付款。我有2个限额日期字段的借方(日期和数据直到)。我需要将一段时间的所有行从借方的所有行加入所有支付行,但不受限制字段的限制。left join where field exists or null

我的查询是:

Select * from Debits a left join Payments b on a.client=b.client 
where b.payments_date>=date_from and b.payments<=date_until 

的问题是,我得到一个内,一个我还需要一个左连接。

我该如何解决这个问题?这是一种方式来说明,如果客户存在于支付表中,将其限制在字段限制内,并且如果不将其与不支付的话???

谢谢

回答

1

将过滤器从where子句移动到连接。在这种情况下,你所要做的就是将“where”改为“and”,Bob将成为你的叔叔。

0

你接近,有这样

Select *, isNULL(b.payments, 'No Payment') 
from Debits a 
left join Payments b 
on a.client=b.client 
on b.payments_date>=date_from 
and b.payments>=date_until 
条件