0

テーブル 2 に対応する値がある場合、テーブル 1 のすべての値を返す SQL クエリを実行しようとしています。また、テーブル 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 には関連付けられた画像があるため、必要な画像は 1 つだけです

私の現在のクエリは次のとおりです。

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

ただし、これは写真のすべての列を返しています。photo_idやalbum_idではなく、Imageを返したいだけです

どんな助けでも素晴らしいでしょう、ありがとう!

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サーバーはわかりません...

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 に答える