【问题标题】:SQL query to select mapping table values?SQL查询选择映射表值?
【发布时间】:2013-05-29 06:57:30
【问题描述】:

我有一个名为 Patient 的表,其中有类似的列

ID Disease1  Disease2  Disease3
         ----------
1     4        3         2
         ----------
2     2        5
         ----------    
3     6
         ----------
4     1

这些是我从疾病表中获得的映射值,其中疾病名称被放置在

1  hypertension
2  niddm
3  allergy  
4  cough
5  floo
6   vv
etc

现在我要选择 sql 查询

ID Disease1  Disease2  Disease3
           ----------
1   cough    allergy     niddm
           ----------
2   niddm    floo
           ----------
3    vv
           ----------
4     HT

请记住,我的表格映射了 4,5 个表格,我希望原始值代替所有表格的 id。

【问题讨论】:

  • 这是已经到位还是您正在开发数据库模式?如果是这样,我会重新审视您的设计并创建一个名为 PatientDisease 的新表 - 您当前的设置是一个糟糕的设计,需要您多次加入您的疾病表。

标签: sql sql-server-2008 select-query


【解决方案1】:

您需要在表Patient 上三次加入表Disease,因为Patient 中的三列依赖于Disease

SELECT  a.ID,
        b.Disease AS Disease1,
        c.Disease AS Disease2,
        d.Disease AS Disease3
FROM    Patient a
        LEFT JOIN Disease b
            ON a.Disease1 = b.ID
        LEFT JOIN Disease c
            ON a.Disease2 = c.ID
        LEFT JOIN Disease d
            ON a.Disease3 = d.ID

如需进一步了解联接,请访问以下链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    相关资源
    最近更新 更多