MySQL - 显式INNER JOIN,可从多个表中进行选择

问题描述 投票:1回答:2

每当我需要进行内部连接时,我必须从多个表中选择列,我已经使用隐式连接正确地使用了语法,没有任何困难。但是,我一直在努力让它与明确的内连接一起工作。

让我用MySQL World Database的一个例子来说明

我使用隐式内连接的说明性查询如下:

SELECT Name, Language, Percentage
FROM Country, CountryLanguage WHERE Code = CountryCode ;

这按预期工作。我可以从任何一个表中以任何顺序排列列,没有任何问题。

我想拥有上述查询的显式INNER JOIN版本(使用“INNER JOIN”和“ON”)。

mysql inner-join
2个回答
1
投票

您可以使用单词,替换隐式连接中的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

0
投票

也许会是这样的

SELECT Name, Language, Percentage, 
FROM Country
INNER JOIN CountryLanguage ON Country.Code = CountryLanguage.CountryCode
© www.soinside.com 2019 - 2024. All rights reserved.