当一个表对一个表具有FOREIGN KEY时,查询从3个表中选择数据

时间:2016-04-18 22:56:04

标签: sql sql-server

  1. 我有三张桌子(ASSETINFO,VENDORINFO,STATEINFO)

  2. 我执行以下查询:

    SELECT t2.TYPE [TYPE], t3.Status [STATUS], t4.COMPANY, T5.STATEID [STATE] 
    
    FROM ASSETINFO t1 
    
    INNER Join TYPEINFO t2 on t1.TYPEID = t2.TYPEID
    INNER Join STATUSINFO t3 on t1.STATUSID = t3.STATUSID
    INNER Join VENDORINFO t4 on t1.VENDORID = t4.VENDORID 
    INNER Join VENDORINFO t5 on t1.VENDORID = t5.VENDORID 
    
  3. 并取回以下结果:

    TYPE: NETWORK FIREWALL | STATUS: ASSIGNED | COMPANY: DELL  | STATE: 3
    

    我可以从TABLE VENDORINFO中检索COMPANY名称但是,我不知道如何用STATE列中的值替换表STATEINFO中的STATEID?

    Three Tables

1 个答案:

答案 0 :(得分:0)

您的vendorInfo的第二次加入不是必需的。而是加入您的Stateinfo表:

SELECT t2.TYPE [TYPE], t3.Status [STATUS], t4.COMPANY, T5.STATE 

FROM ASSETINFO t1 

INNER Join TYPEINFO t2 on t1.TYPEID = t2.TYPEID
INNER Join STATUSINFO t3 on t1.STATUSID = t3.STATUSID
INNER Join VENDORINFO t4 on t1.VENDORID = t4.VENDORID 
INNER Join stateINFO t5 on t4.State = t5.StateId

然后引入State

相关问题