CREATE TABLE [Users_Reg]
(
[User_ID] [int] IDENTITY (1, 1) NOT NULL CONSTRAINT User_Reg_P_KEY PRIMARY KEY,
[Name] [varchar] (50) NOT NULL,
[Type] [varchar] (50) NOT NULL /*Technician/Radiologist*/
)
CREATE Table [Study]
(
[UID] [INT] IDENTITY (1,1) NOT NULL CONSTRAINT Patient_Study_P_KEY PRIMARY KEY,
[Radiologist] [int], /*user id of Radiologist type*/
[Technician] [int], /*user id of Technician type*/
)
select * from Study
inner join Users_Reg
on Users_Reg.User_ID=Study.Radiologist
Patient_study 테이블에서 방사선 전문의 또는 기술자의 값이 0 일 수 있습니다. 질문에서 기술자 이름과 방사선 전문의 이름을 얻는 방법
users_reg
결과를 얻으려면 테이블에 두 번 조인 해야합니다. 한 번은 방사선 전문 의용이고 다른 한 번은 기술자 용입니다.
select ps.uid,
ur1.name rad_name,
ur1.type rad_type,
ur2.name tech_name,
ur2.type tech_type
from Patient_Study ps
left join Users_Reg ur1
on ur1.User_ID=ps.Radiologist
left join Users_Reg ur2
on ur2.User_ID=ps.Technician;
데모가있는 SQL Fiddle을 참조하십시오 . 그러면 모든 환자 연구에 대해 방사선 전문의와 기술자 이름 / 유형이 모두 반환됩니다. 열에서 null을 바꾸려면 COALESCE
다음과 유사하게 사용할 수 있습니다 .
select ps.uid,
coalesce(ur1.name, '') rad_name,
coalesce(ur1.type, '') rad_type,
coalesce(ur2.name, '') tech_name,
coalesce(ur2.type, '') tech_type
from Patient_Study ps
left join Users_Reg ur1
on ur1.User_ID=ps.Radiologist
left join Users_Reg ur2
on ur2.User_ID=ps.Technician;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다