Mysql 如何通过属性连接两个表

Mysql 如何通过属性连接两个表,mysql,sql,Mysql,Sql,我有两张桌子 国家表 Country region AU ANZ NZ ANZ 规则表 Attr_1 Attr_2 Attr_3 Country z 1 s AU b 3 a AU c 9 l NZ m - i DE 现在我想写一个查询,它给出

我有两张桌子

国家表

Country region
AU       ANZ
NZ       ANZ
规则表

Attr_1    Attr_2    Attr_3    Country 
 z         1          s         AU
 b         3          a         AU
 c         9          l         NZ
 m         -          i         DE

现在我想写一个查询,它给出国家属于ANZ地区的所有行。在上述情况下,例如除第4行外的3行,其中国家为DE,不属于ANZ地区。是否可以使用单个查询进行此操作?您可以加入表,然后按国家/地区表进行筛选:

SELECT Rules.* 
FROM Rules
    INNER JOIN Country ON Rules.Country = Country.Country
WHERE Country.Region = 'ANZ'

为什么要添加DISTINCT?DISTINCT是为了预防Country表是原始表的一部分;例如,如果Country表还有另外两列valid_from和valid_to,两行有AU和ANZ,但valid_from和valid_to不同,那么重复元组{Attr_1,Attr_2,Attr_3,Country}将从join执行中返回。如果超出问题,我无法对您的(正确)答案进行投票,回答别人没有要求的问题。我希望这是有道理的。
SELECT DISTINCT Attr_1, Attr_2, Attr_3, Country
FROM Country
INNER JOIN Rules
ON Country.Country=Rules.Country
WHERE Country.region='ANZ'