从另一张表中选择MySQL关键字

3

我目前正在从一组位置MySQL表中获取数据,这是我目前拥有的:

$query = "SELECT Name, CountryCode, Population FROM City WHERE (Population > '6000000') ORDER BY Population DESC";
$result = mysqli_query($link, $query);

while($row = mysqli_fetch_array($result)) {
        echo "<tr>";

        echo "<td>$row[0]</td>";
        echo "<td>$row[1]</td>";
        echo "<td>$row[2]</td>";

        echo "</tr>\n";
}
mysql_close($link);

我尝试解决的问题是如何将CountryCode转换为实际国家名称。以下是调用国家表以获取名称的示例代码。
SELECT Name FROM Country WHERE Code = 'CountryCode';

我该如何将这两个语句合并成一个?

编辑:以下是我成功实现的代码。这是否被视为一种JOIN操作?

$query = "SELECT a.Name, a.CountryCode, a.Population, b.Code, b.Name FROM City a, Country b WHERE (a.CountryCode = b.Code) AND (a.Population > '6000000') ORDER BY Population DESC";
$result = mysqli_query($link, $query);

while($row = mysqli_fetch_array($result)) {
        echo "<tr>";

        echo "<td>$row[0]</td>";
        echo "<td>$row[2]</td>";
        echo "<td>$row[4]</td>";

        echo "</tr>\n";
}
mysql_close($link);

3
你需要学习关于“JOIN”的知识。 - Gordon Linoff
1
https://en.wikipedia.org/wiki/Join_%28SQL%29 - Marc B
我这样做是最好的方式吗? - StackOverflower
你所做的是清晰而直接的(在SQL中)。它也足够高效,以至于“最佳”更多地是可读性的判断。我建议使用比“a”和“b”更有意义的名称,但其余部分都很好。 - Prune
2个回答

0

你需要加入城市表和国家表,它们有一个主键和一个外键。

了解自然连接。很容易。


0
您可以使用此查询:
$query = "SELECT city.Name,country.Name,city.CountryCode,city.Population from city INNER JOIN country where country.CountryCode=city.CountryCode and city.population>5000 ORDER BY city.Population DESC";

这个运行良好。


欢迎来到SO。您可以使用 CTRL+K 来格式化您的代码,使其更易读。 - Mario Trucco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接