期望效果:(我是拿到一對關系去另一表中的一對關系去對比) select * From Empoylee Where (Address1,Address2) in (Select Address1,Address2 From EmpoyleeAdresses Where Country = 'Canada')以上無法實現 用這種方案也可以實現 不過速度很慢的 select * from (select (zcbm ||','||fwbm) as t from T_FWZC ) tt where t not in (select (zcbm ||','||fwbm) as c from T_ZC_FC_GX) 解決方案1:用exists判斷 select a.* From Empoylee a Where exists (select 'A' from EmpoyleeAdresses b Where b.Country = 'Canada' and a.Address1=b.Address1 and a.Address2=b.Address2 ) 解決方案2:用inner join內鏈接 select * From Empoylee inner join EmpoyleeAdresses on Empoylee.Address1=EmpoyleeAdresses.Address1 and Empoylee.Address2=EmpoyleeAdresses.Address2 Where EmpoyleeAdresses.Country = 'Canada')select * from Empoylee em inner join EmpoyleeAdresses emA on em.Address1=emA.Address1 and em.Address2=emA.Address2 and emA.Country = 'Canada' 解決方案3:表關聯 select a.* From Empoylee a , (Select Address1,Address2 From EmpoyleeAdresses Where Country = 'Canada') b Where a.Address1=b.Address1 and a.Address2 = b.Address2 主觀感覺方案1更快一些,客觀上,還沒在查詢分析器里用"顯示執行計划"看哪種寫法效率高些. 如果是Delete語句,寫法如下: Delete From Empoylee Where exists (select 'A' from EmpoyleeAdresses b Where b.Country = 'Canada' and Empoylee.Address1=b.Address1 and Empoylee.Address2=b.Address2 ) 注意Delete from 后的表不能用別名~