我用5表我的照片庫來存儲不同的信息SQL查詢來獲取想要的結果從三個表
照片,PhotoDetails,PhotoMappings,天地我的相簿,PhotoAlbumCategory。
這是一個多語種網站&我想上傳一張專輯的照片&與任何語言版本的網站分享。
涉及的步驟。
- 我將照片添加到照片表
- 其次我映射的照片,以特別專輯(LanguageID,ALBUMID,AlbumCategoryID)在PhotoMapping表
- 第三,我需要添加與像標題特定的照片細節一起,描述,日期...
爲了添加詳細信息,我想顯示特定相冊下的用戶列表以及附加信息,如YES/NO,基於該照片的詳細信息是否在Photodetails表中。
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表
我想輸出到像,如下所示假設我要列有關的詳細信息,其中專輯ALBUMID = 14 &語言= 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
,但放出來一樣保持在此幫助
示例數據
映射表從PhotoDetails表
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
示例數據
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
@KnowledgeSeeker請檢查我的修改後的查詢。 – 2012-07-23 09:56:57
它顯示了8行,來自AlbumID 10的其中一行和13以及在Details的所有字段中都帶有「YES」。雖然它應該顯示輸出完全符合我在部分實際問題中顯示的方式。 – Learning 2012-07-23 10:02:10
我嚇壞了這個查詢數據似乎是正確的,我必須在某個地方做錯什麼...... – Learning 2012-07-23 10:03:55