MySQL从单独的表中选择一个键

时间:2015-09-25 16:09:15

标签: php mysql

我目前正在从一组位置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转换为实际国家/地区。这是我如何调用country表来获取名称

SELECT Name FROM Country WHERE Code = 'CountryCode';

我如何将这两个陈述合并为一个?

编辑:这是我的工作。这被认为是一个加入吗?

$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);

2 个答案:

答案 0 :(得分:0)

你需要加入具有一个主键和一个外键的City表和Country表。

了解自然加入。这很容易。

答案 1 :(得分: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";

这很好。