MySQL从一个表中选择不同的值,从另一个表中给出值

MySQL从一个表中选择不同的值,从另一个表中给出值,mysql,sql,Mysql,Sql,我有两个MySQL表,一个带有国家代码和国家名称,另一个带有疾病和国家代码。我想从第二个表中选择所有因艾滋病死亡的国家,但打印第一个表中的国家名称,而不是国家代码 到目前为止,我已经: SELECT DISTINCT(country) AS countrydeathbyaids FROM deaths WHERE cause = 'AIDS'; 它给出了正确的国家代码,但我想以某种方式在国家表中绑定,以给出国家名称,而不是国家代码。有什么建议吗?您需要执行内部联接,例如: SELECT DIS

我有两个MySQL表,一个带有国家代码和国家名称,另一个带有疾病和国家代码。我想从第二个表中选择所有因艾滋病死亡的国家,但打印第一个表中的国家名称,而不是国家代码

到目前为止,我已经:

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

它给出了正确的国家代码,但我想以某种方式在国家表中绑定,以给出国家名称,而不是国家代码。有什么建议吗?

您需要执行
内部联接,例如:

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

假设
code
是国家代码的列名。

将其与国家表连接起来:

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;

除非我遗漏了什么,否则我应该可以做一个简单的连接

假设countries表为named countries并具有名称字段和代码字段:

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

这是可行的,但打印的是重复的,所以我添加了DISTINCT(),效果很好,谢谢!