2014-05-08 4 views
0

데이터 집합에 가입하고 싶습니다.내부 2 개의 별도 쿼리로 가입하십시오.

확실하지 왜 작동하지 않는 다음

(Select LocID, ParamID, alertNumExceed, upperAlarm, lowerAlarm, alertOn, EntryUserID, ParamOrder 
    from data_LocParams) dl 
    inner join 
    (SELECT LocId 
    from map_Sites ms 
    inner join map_WaterSystems mw on mw.SiteId = ms.SiteId 
    inner join map_Locations ml on mw.SysID = ml.SysID 
    where ms.SiteId = 344) mq 
    on dl.LocID = mq.LocId 

나는 다음과 같은 오류가 발생합니다 :

메시지 102, 수준 15, 상태 1, 줄 3 근처의 구문이 잘못되었습니다 'DL'. 메시지 102, 수준 15, 상태 1, 줄 9 'mq'근처의 구문이 잘못되었습니다.

답변

1

가 당신은 아무것도 선택하지 않은

SELECT dl.LocID, ParamID, alertNumExceed, upperAlarm, lowerAlarm, alertOn, EntryUserID, ParamOrder 
FROM 
    (Select LocID, ParamID, alertNumExceed, upperAlarm, lowerAlarm, alertOn, EntryUserID, ParamOrder 
    From data_LocParams) dl 
    inner join 
    (SELECT LocId 
    from map_Sites ms 
    inner join map_WaterSystems mw on mw.SiteId = ms.SiteId 
    inner join map_Locations ml on mw.SysID = ml.SysID 
    where ms.SiteId = 344) mq 
    on dl.LocID = mq.LocId 
+0

감사합니다 팀으로 ​​단순화 할 수있다. 나는 결국 그것을 알아 냈다. 다음의 http://stackoverflow.com/questions/23554051/join-tables-from-2-datasets –

+1

으로 답변 해 주시면 질문에 대한 답변을 수락 해주십시오. –

0

이 map_Locations이 LocId라는 이름의 열이 있다고 가정, 쿼리는

Select dl.LocID, dl.ParamID, dl.alertNumExceed, dl.upperAlarm, dl.lowerAlarm, dl.alertOn, dl.EntryUserID, dl.ParamOrder 
from data_LocParams dl 
inner join map_Locations ml on dl.LocId = ml.DocId 
inner join map_WaterSystems mw on mw.SysID = ml.SysID 
inner join map_Sites ms on mw.SiteId = ms.SiteId 
WHERE ms.SiteId = 344 

또는

Select dl.LocID, dl.ParamID, dl.alertNumExceed, dl.upperAlarm, dl.lowerAlarm, dl.alertOn, dl.EntryUserID, dl.ParamOrder 
from map_Sites ms 
inner join map_WaterSystems mw on mw.SiteId = ms.SiteId 
inner join map_Locations ml on mw.SysID = ml.SysID 
inner join from data_LocParams on dl.LocID = mq.LocId 
on dl.LocID = mq.LocId 
관련 문제