두 테이블 조인에 대해 궁금한 사항이 잇습니다.. 0 3 479

by 코잠 [SQL Query] [2020.09.11 10:35:31]


안녕하세요,

두 테이블을 조인해서 원하는 result 를 얻고싶은데 어렵네요 그게,,

 


* 화면 테이블 

-----------------
화면ID | 화면명 |
-----------------
   1   | name1  |
-----------------
   2   | name2  |
-----------------
   3   | name3  |
-----------------
   4   | name4  |
-----------------

* 화면 권한 테이블

-------------------------------------------
번호(F) | 사용자 ID | 화면 ID | 사용여부 
-------------------------------------------  
   1         | test1     |   1      |   1    |
-------------------------------------------  
   2         | test2     |   2      |   0    |
-------------------------------------------  
   3         | test3     |   3      |   0    |
-------------------------------------------  
   4      | test4     |   3      |   1    |
                 *
                 *
                 *
                 *


화면에서 번호를 파라미터로 보내서 화면ID로 테이블 join을 해서 데이터 리턴을 원합니다.
근데 번호(F)의 맞는 데이터가 없어도 일단 화면테이블에 화면 데이터(화면ID, 화면명)는 무조건 뽑고 없는 데이터에 대해서는 사용여부를 0으로 가져오고싶은데 그게 어렵네요

* 원하는 result 
             
-------------------------------------------------------------
화면ID(무조건가져오기)   | 화면 명(무조건가져오기) | 사용여부(화면권한테이블에서 번호와 없는 사용자가 있으면 0 return 있으면 join해서 그값 가져오기) 
-------------------------------------------------------------
   1                           | 화면명1                     |   1      
-------------------------------------------------------------
   2                          | 화면명2                     |   1
------------------------------------------------------------- 
   3                          | 화면명3                     |   1
------------------------------------------------------------- 
   4                       | 화면명4                     |   1
 -------------------------------------------------------------  

by DY_A [2020.09.11 10:56:04]

Mssql 이시면
SELECT ID, 화면명

FROM 화면
LEFT OUTER JOIN 화면권환테이블

ON 화면ID = 번호(F)

이렇게 하면 되지않을까요?

WHERE절만 추가하시면 될듯하신데


by 코잠 [2020.09.11 11:29:37]

검색조건을 넣으면 없는 데이터는 검색이 안되네요..ㅠ.;;;

일단 감사합니다 더 해보겠습니다!


by DY_A [2020.09.11 13:05:51]

SELECT 화면테이블의 ID, 화면테이블 화면명
FROM 화면테이블

LEFT OUTER JOIN 화면권한테이블

 ON 화면테이블의 ID = 화면권한의테이블의 ID 

이게 안된다면 컬럼명에 계산들어갔는데 AS로 바꾼 컬럼명을 조건으로 걸었거나 그런거아닌가요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입