2017-02-28 9 views
0

Ich habe zwei MySQL Tabellen, eine mit Ländercode und Ländername und die andere mit Krankheit und Ländercode. Ich möchte alle Länder mit Todesfällen, die von AIDS gemeldet werden, aus der zweiten Tabelle auswählen, aber den Namen des Landes aus der ersten Tabelle drucken, nicht den Ländercode.MySQL wählen unterschiedliche Wert aus einer Tabelle, die Wert aus einer anderen Tabelle

Bisher habe ich:

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

, die die richtigen Ländercodes gibt, aber ich will irgendwie in der Ländertabelle binden country_name zu geben, anstatt Ländercode. Irgendwelche Vorschläge, wie ich das machen kann?

Antwort

0

Sie benötigen einen inner join, z.B .:

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

Unter der Annahme, code ist der Spaltenname für coutry Code auszuführen.

+0

, die funktioniert, aber druckt Duplikate so ich distinct() hinzugefügt und es hat funktioniert, danke! – salivad

+0

Ich habe die Antwort aktualisiert, Prost. –

0

Join mit der Tabelle Länder:

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

Es sei denn, ich etwas fehle, sollte in der Lage sein, eine einfache beitreten zu tun.

Nimmt man den Ländern Tabelle Ländern genannt wird und ein Namensfeld und ein Code-Feld:

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