2017-02-28 61 views
0

我有兩個MySQL表,一個是國家代碼和國家名,另一個是疾病和國家代碼。我想從第二張表格中選擇所有死於艾滋病報告的國家,但從第一張表中打印國家名稱,而不是國家代碼。MySQL從一個表中選擇不同的值,從另一個表中給出值

到目前爲止,我有:

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

這給正確的國家代碼,但我想以某種方式配合國表裏給COUNTRY_NAME,而不是國家代碼。有關我如何做到這一點的任何建議?

回答

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代碼列名。

+0

這樣的作品,但是版畫複製,所以我說DISTINCT()和它的工作,謝謝! – salivad

+0

我已經更新了答案,歡呼聲。 –

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; 
0

除非我失去了一些東西,應該可以做一個簡單的加入。

假設表被命名爲國家和有一個名字領域的國家和代碼字段:

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