我有一个带有文件的表
表名:
的 CountriesInfo
country | continent --------|---------- India | Asia China | Asia Ireland | Europe England | Europe
答案 0 :(得分:1)
试试这个:
您可以使用同一个表加入并获得结果:
select C.country
from CountriesInfo C
join
(select *
from CountriesInfo
where country='India')a
on C.continent=a.continent
答案 1 :(得分:1)
系统应显示所有其他国家/地区 所选国家的大陆我只想使用JOINS(不是 子查询)。有办法吗?
是的,这是获得它的方法。这适用于SQL Server和&的MySQL。
SELECT DISTINCT C2.country
FROM CountriesInfo C1
JOIN CountriesInfo C2 ON C1.continent=C2.continent
WHERE C1.country='INDIA'
答案 2 :(得分:0)
使用此查询自行加入表:
SELECT T2.Country
FROM CountriesInfo T1
JOIN CountriesInfo T2 ON T1.Continent = T2.Continent
WHERE T1.Country = 'Ireland'
当然你可以将参数传递给where子句(而不是“Ireland”)。 此查询是自我加入本身,为您提供与所选国家/地区位于同一大洲的国家/地区列表。
答案 3 :(得分:0)
Select s.country
from countriesInfo R, countriesInfo S
where r.country = 'india'
and s.continent = r.continent
答案 4 :(得分:0)
SELECT DISTINCT ci2.country FROM CountriesInfo ci1
JOIN CountriesInfo ci2 ON ci1.continent=ci2.continent
WHERE ci1.country=<SELECTED_COUNTRY>
答案 5 :(得分: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
这符合要求,因为它返回来自同一大洲的其他国家(并且不包括所选国家/地区),并且不使用子选择。