0

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

表

基本上我需要从tblPhotoGalleries. 我还需要创建一个名为GalleryCategoryName.

GalleryCategoryName字段将是pCatNamein tblPhotoGalleryCats

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

GalleryCategoryName将是 CategoryName 字段,tblNewsCategories其中CategoryID = ConnectedNewsCatID

4

2 回答 2

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
于 2012-07-03T19:15:57.390 回答
0

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

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
于 2012-07-03T19:17:31.483 回答