每当我需要进行内部连接时,我必须从多个表中选择列,我已经使用隐式连接正确地使用了语法,没有任何困难。但是,我一直在努力让它与明确的内连接一起工作。
让我用MySQL World Database的一个例子来说明
我使用隐式内连接的说明性查询如下:
SELECT Name, Language, Percentage
FROM Country, CountryLanguage WHERE Code = CountryCode ;
这按预期工作。我可以从任何一个表中以任何顺序排列列,没有任何问题。
我想拥有上述查询的显式INNER JOIN版本(使用“INNER JOIN”和“ON”)。
您可以使用单词,
替换隐式连接中的JOIN
:
SELECT Name, Language, Percentage
FROM Country
JOIN CountryLanguage
WHERE Code = CountryCode
并且查询将正常工作。你也可以用WHERE
替换ON
,再次它会正常工作。最后,如果您想明确命名列所在的表(这是首选方法),您可以使用:
SELECT c.Name, cl.Language, cl.Percentage
FROM Country c
JOIN CountryLanguage cl
ON c.Code = cl.CountryCode
也许会是这样的
SELECT Name, Language, Percentage,
FROM Country
INNER JOIN CountryLanguage ON Country.Code = CountryLanguage.CountryCode