-2

我有一张带文件的桌子

表名:
CountriesInfo

国家 | 大陆
------|----------
印度 | 亚洲
中国 | 亚洲
爱尔兰 | 欧洲
英格兰 | 欧洲
  1. 用户将选择一个国家
  2. 系统应显示与所选国家/地区同一大陆的所有其他国家/地区,我只想使用 JOINS(而不是子查询)。有没有办法得到?
4

6 回答 6

1

尝试这个:

您可以加入同一张表并获得结果:

select C.country
from   CountriesInfo C 
join
    (select *
     from  CountriesInfo
     where country='India')a
on C.continent=a.continent


SQL 小提琴演示

于 2012-08-21T07:31:30.127 回答
1

系统应显示与所选国家/地区同一大陆的所有其他国家/地区,我只想使用 JOINS(而不是子查询)。有没有办法得到?

是的,这是获得它的方法。这适用于 SQL Server 和 MySQL。

SELECT DISTINCT C2.country 
FROM CountriesInfo C1 
JOIN CountriesInfo C2 ON C1.continent=C2.continent 
WHERE C1.country='INDIA'

查看 MySQL
的演示 查看 SQL Server 的演示

于 2012-08-21T07:45:20.843 回答
0

使用此查询自加入表:

SELECT T2.Country
FROM CountriesInfo T1
JOIN CountriesInfo T2 ON T1.Continent = T2.Continent
WHERE T1.Country = 'Ireland'

当然,您可以将参数传递给 where 子句(而不是“Ireland”)。此查询本身是自加入的,为您提供与所选国家位于同一大陆的国家/地区列表。

于 2012-08-21T07:31:43.290 回答
0
Select s.country 
from countriesInfo R, countriesInfo S
where r.country = 'india'
and s.continent = r.continent
于 2012-08-21T07:33:04.817 回答
0
SELECT DISTINCT ci2.country FROM CountriesInfo ci1
JOIN CountriesInfo ci2 ON ci1.continent=ci2.continent
WHERE ci1.country=<SELECTED_COUNTRY>
于 2012-08-21T07:34:33.857 回答
0

这对我来说有点像家庭作业!一种方法是这样的:

DECLARE @chosenCountry VARCHAR(MAX)
SET @chosenCountry = 'India' -- Set it however you want here...

SELECT ciSameContinent.country FROM CountriesInfo ci
INNER JOIN CountriesInfo ciSameContinent ON ci.continent = ciSameContinent.continent
WHERE ci.country = @chosenCountry
AND ciSameContinent.country <> @chosenCountry -- Forgot this bit which is needed to exclude the chosen country as per the question

这满足了要求,因为它返回来自同一大陆的 OTHER 国家(并且不包括所选国家)并且不使用子选择。

于 2012-08-21T07:35:17.423 回答