2015-11-03 70 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'