2012-12-21 109 views
0

我試圖做一個SQL查詢,它將返回表1中的所有值,如果它具有表2中的對應值。我也想返回相應的值表2中的值,但只有它們是多個值時纔將其限制爲1。返回表1中的所有列和表2中的一列

這裏是數據的一個示例:

TABLE 1: album 
------------- 
ALBUM_ID 
1  
4   
5 
13 

TABLE 2: photo 
------------- 
PHOTO_ID  ALBUM_ID   IMAGE 
1    4     img1 
4    4     img2 
6    1     img17 
15    4     img15 
24    3     img3 
與上述數據

所以,我想下面返回:

ALBUM_ID:1 IMAGE17 //因爲專輯1具有相關聯的圖像 ALBUM_ID :4 IMAGE1 //因爲專輯4有關聯的圖像,但我只想要一個像

我當前的查詢是:

SELECT * 
FROM album 
INNER JOIN photo ON album.album_id=photo.album_id 
GROUP BY album.album_id 

但是,這是返回照片中的所有列,我只是想它返回圖像,而不是photo_id或album_id

任何幫助將是偉大的,謝謝!

回答

1

試試這個:

SELECT al.*, ph.column_name 
FROM album AS al 
INNER JOIN photo AS ph ON album.album_id=photo.album_id 
GROUP BY album.album_id 
+0

很好,工作,謝謝! – Benzino

+1

你在使用什麼數據庫引擎?該SQL會在Oracle上給出錯誤。 –

0

抱歉,但我不知道你用的是什麼的SQL Server ...

PLS/SQL和T-SQL具有特殊功能的這個duplicit導致

mysql有沒有我想...

但嘗試用限制子查詢

爲MySQL嘗試下查詢 //沒有測試..從我的腦海破碎

SELECT 
    alb.*, -- or all columns with prefix alb 
    pho.IMAGE 
FROM album alb 
INNER JOIN (
       SELECT ALBUM_ID, IMAGE FROM photo LIMIT = 1 
) pho ON pho.ALBUM_ID = alb.ALBUM_ID 

工作寫?

相關問題