返回表1中的所有列,以及表2中的一列

时间:2012-12-21 13:08:21

标签: sql

我正在尝试执行一个SQL查询,如果它在表2中有相应的值,它将返回表1中的所有值。我还想在表2中返回相应的值,但是如果他们只将它们限制为1是多个值。

以下是数据示例:

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

然而,这会返回照片中的所有列,我只是希望它返回Image,而不是photo_id或album_id

任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

抱歉,但我不知道你正在使用什么sql server ...

pls / sql和t-sql对这个双重结果有特殊功能

我认为mysql没有......

但尝试使用带有限制的子查询

for 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

工作?