0

私はこの1時間、これを解決しようとしてきました。私の大学の家庭教師は私にこの質問をし、私は何をすべきか分かりません.

質問は:

ワン・ダイレクションが上演した英国のすべての郡を表示

これはデータベースとテーブルです:

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 の両方に County があります。これは悪い設計です。市が郡「B」であるのに対し、郡「A」を持つ会場を想像してみてください。

于 2013-05-20T16:59:10.630 に答える