DataBase查询连接到表

时间:2011-12-05 11:13:14

标签: sql

国家

CountryKey
CountryName

ApprovedCountry

ApprovedCountryKey
CountryKey
Approved

Country表格中的数据

1,BD
2,USA
3,UK

ApprovedCountry表格中的数据

--
1,1,1

我需要的是

CountryKey,CountryName,Approved
1,BD,1
2,USA,0
3,UK,0

2 个答案:

答案 0 :(得分:1)

尝试:

select c.CountryKey, c.CountryName, coalesce(a.Approved,0) Approved
from Country c
left join ApprovedCountry a on c.CountryKey = a.CountryKey

答案 1 :(得分:0)

这是将主键与外键相关的数据的直接连接。

SELECT
  Country.CountryKey,
  Country.CountryName,
  CountryApproved.Approved
FROM
  Country
LEFT JOIN
  ApprovedCountry
     ON Country.CountryKey = ApprovedCountry.CountryKey

如果不是 ApprovedCountry表中的匹配记录,则使用LEFT连接。如果CountryApproved表中没有记录,则使用LEFT联接意味着NULL将出现在“已批准”列中。

如果NULL值可以假定为“未批准”,则选择的第3行可以更改为COALESCE(CountryApproved.Approved, 0) AS Approved