0

在过去的一个小时里,我一直在努力解决这个问题。我的大学导师给了我这个问题,我不知道该怎么办。

问题是:

显示英国所有一个方向已执行的县

这是数据库和表:

CITY (Name, County, Country)
THEATRE (Name, City, County, Capacity)
SHOW (Title, Artist, Venue, Attendance)

这是我的回答:

SELECT country from theatre
INNER JOIN show
ON theatre.name = show.venue
WHERE artist = 'one direction'
AND county=(

     SELECT country FROM theatre 
     INNER JOIN city
     ON theatre.city = city.name
     WHERE city.country = 'UK'
)

我接近了吗?

4

1 回答 1

2
SELECT DISTINCT 
  THEATRE.County AS CountyFromTheatre,
  CITY.County AS CountyFromCity,
FROM SHOW
INNER JOIN THEATRE ON THEATRE.NAME=`SHOW`.Venue
INNER JOIN CITY ON CITY.NAME=THETARE.City
WHERE `SHOW`.Artist='one direction'
AND CITY.Country='UK'

观察#1:注意 SHOW 上的反引号 - 使用保留字作为表名通常是不好的风格。

观察#2:CITY 表和 THEATER 都有县。这是一个糟糕的设计——想象一个场地有“A”县,而城市有“B”县

于 2013-05-20T16:59:10.630 回答