2015-11-03 49 views
0
select A.GEO_COORDINATE_RID , B.GEO_COORDINATE_RID 
from FAC_FACILITY as A 
right join SYS_GEO_COORDINATE as B 
on A.CREATED_DATE= B.CREATED_DATE 
where B.CREATED_BY = 'EPDMIG' 

以上select语句给340分的结果,但是当我试图在更新语句(如下)使用,它给出了0的结果UPDATE语句右连接

update A 
set A. GEO_COORDINATE_RID = B.GEO_COORDINATE_RID 
from FAC_FACILITY as A 
right join SYS_GEO_COORDINATE as B 
on A.CREATED_DATE= B.CREATED_DATE 
where B.CREATED_BY = 'EPDMIG' 

GEO_COORDIANTE _RID从sys_GEO_COORDIANTE是FK在FAC_FACILITY表上

更新语句中是否有任何缺失?

+0

GEO_COORDIANTE _RID从sys_GEO_COORDIANTE是FK上FAC_FACILITY表 – patwary

+0

什么是与 “A GEO_COORDINATE_RID” 的空间? – JBrooks

+0

如果用INNER JOIN替换RIGHT JOIN如何获得行数? –

回答

0

您有一个RIGHT JOIN,这意味着可能没有与A匹配的行。有多少A.GEO_COORDINATE_RID为空?他们全部?如果你只是做一个JOIN,有没有行可以回来?

第二项,如果CREATED_DATE是DateTime,则它们必须匹配到毫秒。不知道你在做什么,但如果你只关心一天,你可以像下面一样加入。但话虽如此,通常情况下你并没有参加create_date。您是否应加入GEO_COORDINATE_RID?

select A.GEO_COORDINATE_RID , B.GEO_COORDINATE_RID 
from FAC_FACILITY as A 
join SYS_GEO_COORDINATE as B 
on CAST(A.CREATED_DATE AS DATE) = CAST(B.CREATED_DATE AS DATE) 
where B.CREATED_BY = 'EPDMIG'