多言語フォトギャラリーに関連するテーブルがいくつかあります
- アルバムカテゴリー
- アルバム名
- 写真
- 写真詳細
2 つのテーブルのサンプル テーブル構造。実際には、特定の PhotoID がテーブルに存在するかどうかを示す、またはそれに基づくカスタム列とともに、Photos
特定のテーブルからのすべてのレコードのリストを表示する結果セットが必要ですAlbumID
TRUE
FALSE
PhotoDetails
Table: Photos
PhotoID PhotoFile AlbumID
1 Photo1.jpg 7
2 Photo2.jpg 7
3 Photo3.jpg 5
4 Photo4.jpg 5
5 Photo5.jpg 7
6 Photo6.jpg 7
Table: PhotoDetails
PDID PhotoID PDTitle AlbumID LanguageID
11 1 Photo 1 7 1
22 2 Photo 2 7 1
33 3 Photo 3 5 1
44 4 Photo 4 5 1
DESIRED OUT PUT
PhotoID PDTitle AlbumID DetailPresent
1 Photo1 7 TRUE
2 Photo2 7 TRUE
5 Photo5 7 FALSE
6 Photo6 7 FALSE
いくつかの JOIN ベースのクエリを試しましたが、目的の結果を得ることができませんでした
SELECT pd.PhotoTitle, p.PhotoTN,p.PhotoCreatedOn, pd.AlbumID, ISNULL(p.PhotoID,NULL) AS Missing FROM AlbumPhotos p
JOIN AlbumPhotoDetails pd
ON p.PhotoID = pd.PhotoID WHERE pd.AlbumID = 16
このクエリでも同じ結果が得られます
SELECT pd.PhotoTitle, p.PhotoTN,p.PhotoCreatedOn, pd.AlbumID, ISNULL(p.PhotoID,NULL) AS Missing FROM AlbumPhotos p
JOIN AlbumPhotoDetails pd
ON p.PhotoID = pd.PhotoID WHERE pd.AlbumID = 16
OR p.PhotoID IN (SELECT PhotoID FROM AlbumPhotoDetails WHERE LanguageID = 1 AND AlbumID = 16)
上記のクエリは、に基づいてマッチングの結果を取得しますPhotoID
。上記のサンプル「DESIRED OUT PUT」に示されているように、実際に望ましい結果を達成する方法がわかりません。