基于其他表的值连接表

时间:2012-07-03 19:09:09

标签: sql tsql

我有以下表格。我想运行一个查询,但我认为我的初学者tsql级别在这里没有帮助..这可能也是我的数据库设计不好的情况。

tables

基本上我需要从tblPhotoGalleries中选择所有字段。另外,我需要创建一个名为GalleryCategoryName的单独字段。

GalleryCategoryName字段将是pCatName中的tblPhotoGalleryCats

如果在pCatNametblPhotoGalleryCats = '0',那就意味着,ConnectedNewsCatID不是0。在这种情况下;

GalleryCategoryName将是tblNewsCategories中的{Name}字段CategoryID = ConnectedNewsCatID

2 个答案:

答案 0 :(得分:0)

尝试从这里开始:

select *,
  case when PGC.pCatName = '0' then NC.CategoryName else PGC.pCatName end as [CatName]
  from tblPhotoGalleries as PG inner join
    tblPhotoGalleryCats as PGC on PGC.pCatID = FK_pCatID left outer join
    tblNewsCategories as NC on NC.CategoryId = ConnectedNewsCatID

答案 1 :(得分:0)

在新闻类别表上使用左连接,并使用案例表达式在名称之间进行选择:

select
  g.pgID, g.gName,
  GalleryCategoryName = case c.pCatName when '0' then n.CategoryName else c.pCatName end
from tblPhotoGalleries g
inner join tblPhotoGFalleryCats c on c.pCatID = g.FK_pCatID
left join tblNewsCategories n on n.CategoryOd = c.ConnectedNewsCatID