2013-05-20 69 views
0

我一直在努力工作在最後一個小時。我的大學教師給我這個問題,我不知道該怎麼做。在mysql中顯示來自不同表的結果

的問題是:

顯示所有縣在英國,其中已進行一個方向

這是數據庫和表:

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' 
) 

我關閉了嗎?

回答

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」

相關問題