2012-03-23 41 views
0

我有一個查詢,我知道它應該至少返回一行。我如何修改我的關注查詢以確保相冊返回數據。謝謝你的幫助。Mysql查詢幫助。我需要確保至少有一條記錄返回

在此處查詢。我知道該專輯有一排,我需要返回它。

select distinct p.*, 
a.ID as parentalbumid,a.CreatorID as albumcreatorid,a.AlbumName,a.AlbumDescription,a.AlbumDefaultImageURL,a.Private,a.DateCreated,a.AdultContent,a.PasswordProtected,a.AllowTags,a.TypeID,a.AlbumAutoID, 
mainuser.Username as mainuserusername,mainuser.ID as mainuserid,mainuser.PictureUrl as mainuserpictureurl, 
c.ID as commentID,c.PhotoID as commentphotoid,c.OutputMessage,c.CommentDate, 
t.ID as tagID,t.PhotoID as tagphotoid,t.UserID,t.TextTag,t.LeftLocation,t.TopLocation, 
u.ID as userid,u.Username,u.FirstName,u.LastName,u.PictureUrl 
from photos p 
inner join albums a on a.ID = p.AlbumID 
inner join users mainuser on mainuser.ID = p.UserID 
left join comments c on c.PhotoID = p.ID 
left join tags t on t.PhotoID = p.ID 
left join users u on u.ID = c.CommentBy 
where a.AlbumAutoID = 3 
order by p.DateUploaded desc; 

回答

1

只能使用LEFT JOIN S(和放在桌子albums爲您FROM的第一個表格):

select distinct p.*, 
a.ID as parentalbumid,a.CreatorID as albumcreatorid,a.AlbumName,a.AlbumDescription,a.AlbumDefaultImageURL,a.Private,a.DateCreated,a.AdultContent,a.PasswordProtected,a.AllowTags,a.TypeID,a.AlbumAutoID, 
mainuser.Username as mainuserusername,mainuser.ID as mainuserid,mainuser.PictureUrl as mainuserpictureurl, 
c.ID as commentID,c.PhotoID as commentphotoid,c.OutputMessage,c.CommentDate, 
t.ID as tagID,t.PhotoID as tagphotoid,t.UserID,t.TextTag,t.LeftLocation,t.TopLocation, 
u.ID as userid,u.Username,u.FirstName,u.LastName,u.PictureUrl 
from albums a 
left join photos p on a.ID = p.AlbumID 
left join users mainuser on mainuser.ID = p.UserID 
left join comments c on c.PhotoID = p.ID 
left join tags t on t.PhotoID = p.ID 
left join users u on u.ID = c.CommentBy 
where a.AlbumAutoID = 3 
order by p.DateUploaded desc; 
+0

謝謝。這就像我喜歡的一樣工作! – user516883 2012-03-23 21:06:39