这是两个表;
类别
----------------------------------------
Cathegory (tinyint) | Name (nvarchar)
----------------------------------------
0 | Field
1 | Mountain
2 | River
----------------------------------------
地点
------------------------------------------
Name (nvarchar) | Cathegory(tinyint)
------------------------------------------
Abc | 2
Xyz | 1
------------------------------------------
[当我想检索场所列表名称及其名称时,不是以int格式而是根据名称中的描述。
所以检索Abc,我想要这样;
“河”代替'2'
您需要在cathegory
上连接两个表,如下所示。
select
p.name as places,
c.name as category_name
from places p
join cathegories c
on p.cathegory = c.cathegory
请使用以下查询,
select c.name as place, p.name as name from Cathegories c
inner join Places p
on (c.Cathegory = p.Cathegory);
这里是基于接受的答案的多个JOIN语句的版本:
SELECT
ColumnUserViews,
C.Cathegory AS VCathegory,
ColumnUserPoints,
T.Description AS VTag1,
TT.Description AS VTag2
FROM dbo.Users U
JOIN dbo.Cathegories C ON U.Cathegory = C.Cathegory
JOIN dbo.Tags T ON U.Tag1 = T.Tag
JOIN dbo.Tags TT ON U.Tag2 = TT.Tag
关键字U定义了物理表用户,T标签和TT以及标签(可以重命名)。VCathegory是要检索的新虚拟列,其中包含Users.Cathegory的值,其转换为Cathegories.Description(等效字符串),按照当前方案。