我有一个标准的sql数据库,其中包含ID,标题和描述列,但也包含位置,类别划分等..是int值。
我有第二个引用 sql数据库,其中包含一个ID列,一个引用列和一个描述列。 ID列具有2char参考值,该值反映了它所持有的数据类型(CA表示类别,DI表示分区等)。
我想在表中显示这些结果,但无法编写正确的查询。
例如:带标题字母的标题 ABC 的位置 1 类别 2 3 的划分需要将位置,类别和除法与同一参考表进行比较,并返回相应的描述文本。
Data database
ID | Title | Description | location | category | division |
------------------------------------------------------------
1111 | ABC | letters | 1 | 2 | 3 |
1112 | ASD | asdasd | 3 | 2 | 3 |
Reference Database
ID | Reference | Description |
------------------------------
LO | 1 | The location |
DI | 3 | division words |
CA | 2 | category words |
DI | 1 | ALL |
我希望有一张返回
的表
ID | Title | Description | location | category | division |
------------------------------------------------------------------
1111 | ABC | letters | The location | category words | division words |
到目前为止,我已经
select ID
,title
,description
,location
,category
,division
,reference.description as CAname
from data
left join reference on data.category = reference.reference
where id_type = 'CA'
我希望这很清楚,
答案 0 :(得分:2)
这应该给你一个起点。
SELECT dt.ID,dt.Title,dt.description,
L1.Description as LocationDescription,
L2.Description as CategoryDescription ...
FROM data dt
JOIN Reference L1 on dt.location=L1.Reference and L1.ID=='LO'
JOIN Reference L2 on dt.category=L2.Reference and L2.ID=='CA'
我同意迈克的评论,但这是一个糟糕的架构设计