2

我有一个包含这些表的数据库:

languages: id, name
countries: id, name
country_languages: id, country_id, language_id

我需要一个查询,它给我一个包含以下字段的表:

language_id
language_name
active

所有语言都应该出现在结果中。但是,如果该语言在国家/地区使用,id=39则该active列应为真,否则应为假。是否有任何直截了当的查询mysql

谢谢

4

1 回答 1

1

使用匹配langauges映射表left outer join,然后检查映射表的id列以查看是否有匹配 ( active = 1) 或没有 ( active = 0)。

select distinct
    l.id
    , l.name
    , case when cl.id is null then 0 else 1 end as active
from languages l left outer join country_languages cl
    on l.id = cl.language_id
where cl.id = 39
于 2013-06-19T12:25:22.757 回答