不确定左连接或内连接是否最适合此查询

时间:2017-07-18 17:26:12

标签: sql sql-server join

SELECT a.RegPropertyid,a.Bndnbr,a.account_balance,
       abs(a.account_balance) as BondBalance,b.BndregDate
INTO Jan2014ValidFin
FROM Jan2014Valid a 
LEFT JOIN  BNDtable b on a.RegPropertyid=b.propid and a.Bndnbr=b.Bndnbr
Where a.RegPropertyid is not null

 select Bnd_regDate from BND_table  
 Where Prop_id in (select regpropertyid from Jan2014ValidFin where 
 regpropertyid is not null) and BndregDate  is not null 

3 个答案:

答案 0 :(得分:1)

LEFT JOIN从所提到的第一个表中获取所有记录,并且第二个提到的表与第一个表中的记录相同。

INNER JOIN只接受两者中的常用术语。

如果TableA是A,B,C,F,G和TableB是C,D,E,

TableA LEFT JOIN TableB会给你A,B,C,F,G

TableA INNER JOIN TableB会给你C

答案 1 :(得分:0)

这取决于你需要什么。如果propertyid列匹配propid并且bndnbr匹配bndnbr,则第一个select上的左连接将获取Jan2014Valid中的所有行以及BNDtable中的所有匹配行。如果它不匹配,你仍然可以从Jan2014Valid获取行,并为BNDtable中的列获取空值。

如果你使它成为一个正确的连接,你将获得BNDtable中的所有行以及Jan2014Valid表中的任何匹配数据(列)。

答案 2 :(得分:0)

您上面提到的Null结果并没有显示,因为您写了"不是Null",删除它并且您应该很好