0

我正在尝试执行一个 SQL 查询,如果它在表 2 中具有相应的值,它将返回表 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

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

4

2 回答 2

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
于 2012-12-21T13:10:26.887 回答
0

抱歉,我不知道您使用的是什么 sql server ...

pls/sql 和 t-sql 对此重复结果具有特殊功能

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

在职的 ?

于 2012-12-21T13:24:51.900 回答