MySQL:根据另一个表中的多个值从表中选择多个值

时间:2011-05-26 22:40:47

标签: mysql

我想返回有关每个区域的所有报告,这些报告属于宏观区域......

我想以某种方式

SELECT DISTINCT report FROM reports WHERE region = 
(SELECT distinct region from macroregions where macroregion = 'Africa') 

宏观区域是撒哈拉,西非,热带非洲等......

虽然这是不可能的,因为子查询会返回多个结果。

2 个答案:

答案 0 :(得分:2)

SELECT DISTINCT report FROM reports WHERE 
region IN 
(SELECT distinct region from macroregions where macroregion = 'Africa') 

也许您错过了IN运营商

答案 1 :(得分:2)

这可以满足您的需求:

SELECT 
    r.report
FROM
    reports r
INNER JOIN
    macroregions m ON 
        m.region = r.region
        AND 
        m.macroregion = 'Africa'

这是与宏观区域“非洲”相关的地区相关的所有报告。