フォト ギャラリーに 5 つのテーブルを使用して、さまざまな情報を保存しています
写真、PhotoDetails、PhotoMappings、PhotoAlbum、PhotoAlbumCategory。
これは多言語ウェブサイトです。アルバム用の写真を一度アップロードして、どの言語バージョンのウェブサイトでも共有したいと考えています。
必要な手順。
- 写真テーブルに写真を追加します
- 次に、PhotoMapping テーブルの (LanguageID、AlbumID、AlbumCategoryID) と共に写真を特定のアルバムにマップします。
- 3番目に、タイトル、説明、日付などの特定の写真に関連する詳細を追加する必要があります...
詳細を追加するには、特定のアルバムの下にある写真のユーザー リストを、この写真の詳細が Photodetails テーブルにあるかどうかに基づいて、YES/NO などの追加情報とともに表示したいと考えています。
PhotoDetails
[PhotoDetailsID] [int] IDENTITY(1,1) NOT NULL,
[PhotoTitle] [nvarchar](300) NULL,
[PhotoDesc] [nvarchar](max) NULL,
[PhotoDate] [date] NULL,
[PhotoVisible] [bit] NULL,
[PhotoID] [int] NOT NULL,
[AlbumID] [int] NULL,
[LanguageID] [int] NULL,
[PhotoDetailsCreatedOn] [date] NULL
PhotoMappings
[MappingID] [int] IDENTITY(1,1) NOT NULL,
[LanguageID] [int] NULL,
[CategoryID] [int] NULL,
[AlbumID] [int] NULL,
[PhotoID] [int] NULL,
Photos
[PhotoID] [int] IDENTITY(1,1) NOT NULL,
[PhotoTN] [nvarchar](100) NULL,
[PhotoLarge] [nvarchar](100) NULL,
[PhotoGUID] [nvarchar](50) NULL,
[PhotoCreatedOn] [date] NULL,
SELECT d.PhotoTitle,d.AlbumID,p.PhotoTN AS TN, p.PhotoID AS PID,p.PhotoLarge AS PL,
case when d.PhotoId is null then 'NO' else 'YES' end AS [Details]
FROM Photos p JOIN PhotoDetails d
ON p.PhotoId = d.PhotoId JOIN PhotoMappings m
ON p.PhotoId = m.PhotoId WHERE d.AlbumID = 14 and m.LanguageID = 1
PhotoMapping テーブルのすべてのレコードと、PhotoDetails テーブルに存在しない行を表示するクエリを作成する必要があります。
上記のクエリを使用していますが、目的の結果が得られますが、PhotoDetails テーブルに存在しない列は表示されません
OUTPUT を以下のようにしたいのですが、AlbumID=14 & Language =1 のアルバムに関する詳細が必要だとします (クエリから最初の 6 行のみを取得します)。
PhotoTitle AlbumID TN PID PL Details
Title of Photo1 14 1Icon.JPG 16 1.JPG YES
Title of Photo2 14 2Icon.JPG 21 2.JPG YES
Title of Photo3 14 3Icon.JPG 20 3.JPG YES
Title of Photo4 14 4Icon.JPG 22 4.JPG YES
Title of Photo5 14 5Icon.JPG 18 5.JPG YES
Title of Photo6 14 6Icon.JPG 17 6.JPG YES
Title of Photo7 14 7Icon.JPG 23 7.JPG NO
Title of Photo8 14 8Icon.JPG 24 8.JPG NO
私は&に変更JOIN
しましたが、出力は同じままであることに関して、これについて助けていただければ幸いですLEFT OUTER JOIN
RIGHT OUTER JOIN
サンプルデータ
マッピング表
MappingID LanguageID CategoryID AlbumID PhotoID
1 1 7 14 16
2 1 7 14 21
3 1 7 14 20
4 1 7 14 22
5 1 7 14 19
6 1 7 14 18
7 1 7 14 17
8 1 7 14 23
PhotoDetails テーブルのサンプル データ
PhotoDetailsID PhotoTitle PhotoDate PhotoVisible PhotoID AlbumID LanguageID PhotoDetailsCreatedOn
20 Title of Photo1 2012-07-02 1 16 14 1 2012-02-07
21 Title of Photo2 2012-07-02 1 17 14 1 2012-02-07
22 Title of Photo3 2012-07-02 1 18 14 1 2012-02-07
24 Title of Photo4 2012-07-02 1 20 14 1 2012-02-07
25 Title of Photo5 2012-07-02 1 21 14 1 2012-02-07
26 Title of Photo6 2012-07-02 1 22 14 1 2012-02-07
23 Title of Photo7 2012-07-02 1 19 10 1 2012-02-07
27 Title of Photo8 2012-07-02 1 23 13 1 2012-02-07
34 Something 2012-07-02 1 14 13 1 2012-02-07
35 Something 2012-03-20 1 37 17 1 2012-03-07
36 Something 2012-03-13 1 38 10 1 2012-03-07