Im 외부 조인 테이블에서 값을 얻으려고하지만 작동하지 않았습니다 .. 도움이 필요합니다 ..
1) 아래와 같이 Tbl_report 가정
RID | CAT_ID | EXT_CODE
----------------------------------
1 | C01 | HW06
2 | C02 | SW04
3 | C03 | IT04
4 | C04 | HW04
5 | C05 | SW02
WHERE EXT_CODE @ Tbl_report 상술되는 1 개 이상의 테이블의 참조 (열 SCODE Tbl_SW에서 열 HCODE Tbl_HW 행 또는 열 ICODE Tbl_IT에서) 다음에, 표시 내용 칼럼 콘텐츠 인 (referrence 테이블을 SNAME Tbl_SW에서 HNAME Tbl_HW 가입일 또는 Tbl_IT 의 INAME)
2) Tbl_SW
SID | SCODE | SNAME
-----------------------------------
1 | SW02 | SEC 2
2 | SW04 | SEC 4
3 | SW06 | SEC 6
3) Tbl_HW
HID | HCODE | HNAME
-----------------------------------
1 | HW02 | HOC 2
2 | HW04 | HOC 4
3 | HW06 | HOC 6
4) Tbl_IT
IID | ICODE | INAME
-----------------------------------
1 | IT02 | ITC 2
2 | IT04 | ITC 4
3 | IT06 | ITC 6
예상 결과는 다음과 같습니다.
RID | CAT_ID | EXT_CODE
----------------------------------
1 | C01 | HW06 - [HOC 6]
2 | C02 | SW04 - [SEC 4]
3 | C03 | IT04 - [ITC 4]
4 | C04 | HW04 - [HOC 4]
5 | C05 | SW02 - [SEC 2]
이 select 문으로
SELECT
`[RID]`,
`[CAT_ID]`,
CONCAT(`[EXT_CODE]`, ' - ',
`[SNAME]` ) result
FROM
Tbl_report tr
LEFT join (SELECT * FROM Tbl_SW UNION SELECT * FROM Tbl_HW UNION SELECT * FROM Tbl_IT) ts
ON tr.`[EXT_CODE]` = ts.`[SCODE]`
이 결과를 얻습니다.
RID CAT_ID result
1 C01 HW06 - HOC 6
2 C02 SW04 - SEC 4
3 C03 IT04 - ITC 4
4 C04 HW04 - HOC 4
5 C05 SW02 - SEC 2
DBfiddle 예제 https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f78a88f019df887666ac059d39ba1f48
이것은 조인 할 테이블이 동일한 구조를 갖기 때문에 작동합니다.
왼쪽 조인은 첫 번째 예에서 그것을 가지고 있었기 때문에 거기에 넣었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다