Sql查询用于从一个表中提取基于其他的信息

时间:2013-12-15 11:23:27

标签: sql

我有两张桌子

  • Countrycountryidcountryname

  • Citycityidcityname

我想根据我选择的countryid提取城市名称。

我是sql数据库的新手,如果可以,请帮我直接查询。

非常感谢。

4 个答案:

答案 0 :(得分:3)

根据您显示的表结构,此查询无法进行。您需要在cities表中添加'country_id',以便了解每个城市所在的国家/地区。完成此操作后,您的查询将是

select cities.cityname, countries.countryname
from cities inner join countries on countries.country_id = cities.country_id
order by countries.countryname, cities.cityname

答案 1 :(得分:1)

首先你应该在城市表中有countryid,因为一个国家可以有很多城市。然后你可以写。

select A.cityname from city A
where
    A.countryid in (select B.countryid from country B)

如果您想了解更多信息,请查看此链接。

SQL: Select from one table matching criteria in another?

答案 2 :(得分:0)

您必须在City表中添加countryid并编写以下查询

select * from city c left outer join country co on c.countryid=co.countryid;

答案 3 :(得分:0)

您需要在city表中包含countryid。

    SELECT cityid, cityname FROM city WHERE countryid = $CounrtyID