2013-10-21 46 views
1

表選擇我有四個表:基於COUNT在SQL

PAINTING   GALLERY    ARTIST    PAINTED 
- PAINTING_TITLE - GALLERY_ID  - ARTIST_ID   - PAINTED_CODE 
- PAINTING_ID  - GALLERY_NAME  - ARTIST_LAST  - ARTIST_ID 
             - ARTIST_FIRST  - PAINTING_ID 

繪表跟蹤每個畫家畫的畫。有些繪畫是由不止一位藝術家繪製的。我想要返回兩位藝術家繪畫作品的列表。

SELECT 
    PAINTING.PAINTING_TITLE AS TITLE, 
    GALLERY.GALLERY_NAME AS GALLERY 
FROM 
    PAINTING, 
    GALLERY, 
    PAINTED 
WHERE 
     PAINTING.GALLERY_ID = GALLERY.GALLERY_ID 
    AND 
     PAINTING.PAINTING_ID = PAINTED.PAINTING_ID 
GROUP BY 
    PAINTING.PAINTING_TITLE, 
    GALLERY.GALLERY_NAME 
HAVING 
    COUNT(PAINTED.ARTIST_ID) = 2 

這是有效的,但它沒有包含在結果中的藝術家的名字。我需要將每個藝術家的名字沿着畫廊名稱和藝術品名稱列出,其中每個藝術家都會出現兩次,但是會與另一位藝術家一起出現。

我正在使用Access SQL。

回答

0

使用此:

SELECT 
    PAINTING.PAINTING_TITLE AS TITLE, 
    GALLERY.GALLERY_NAME AS GALLERY, 
    ARTIST.ARTIST_FIRST & " " & ARTIST.ARTIST_LAST 
FROM 
    PAINTING, 
    GALLERY, 
    PAINTED, 
    ARTIST, 
WHERE 
     PAINTING.GALLERY_ID = GALLERY.GALLERY_ID 
    AND 
     PAINTING.PAINTING_ID = PAINTED.PAINTING_ID 
    AND 
     ARTIST.ARTIST_ID = PAINTED.ARTIST_ID 
GROUP BY 
    PAINTING.PAINTING_TITLE, 
    GALLERY.GALLERY_NAME 
HAVING 
    COUNT(PAINTED.ARTIST_ID) = 2