MySQL从一个表中选择不同的值,从另一个表中提供值

时间:2017-02-28 20:36:09

标签: mysql sql

我有两个MySQL表,一个包含国家/地区代码和国家/地区名称,另一个包含疾病和国家/地区代码。我想从第二个表格中选择所有艾滋病报告死亡国家,但是从第一个表格中打印国家名称,而不是国家代码。

到目前为止,我有:

SELECT DISTINCT(country) AS countrydeathbyaids
FROM deaths
WHERE cause = 'AIDS';

给出正确的国家/地区代码,但我想以某种方式在国家/地区表中绑定以给出country_name而不是国家/地区代码。关于我如何做到这一点的任何建议?

3 个答案:

答案 0 :(得分:0)

您需要执行inner join,例如:

SELECT DISTINCT(c.country_name)
FROM countries c JOIN deaths d ON c.code = d.country
WHERE d.cause = 'AIDS';

假设code是coutry code的列名。

答案 1 :(得分:0)

加入国家/地区表:

select c.country_name
from countries c
join (
    select distinct country_code
    from deaths
    where cause = 'AIDS'
    ) d on c.country_code = d.country_code;

答案 2 :(得分:0)

除非我遗漏了某些东西,否则应该可以进行简单的加入。

假设countries表名为countries,并且有一个名称字段和一个代码字段:

SELECT DISTINCT(countries.name) AS countrydeathbyaids
FROM deaths
INNER JOIN countries ON countries.code = deaths.country
WHERE deaths.cause = 'AIDS';