使用SQL引用表进行查询

时间:2014-09-08 19:13:20

标签: mysql sql

我有一个标准的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'

我希望这很清楚,

1 个答案:

答案 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'

我同意迈克的评论,但这是一个糟糕的架构设计