mariaDB 쿼리 에러에 관한 질문 0 4 979

by tosswin [SQL Query] mysql mariaDB [2022.05.13 15:29:21]


이제 db에 입문하였습니다.

기초 지식이 없는 상태에서 mssql 쿼리문을 mariaDB 쿼리문으로 바꾸고 있는데요.

제대로 되지 않아 이렇게 문의를 드립니다.

 

2개의 테이블이 아래와 같이 있습니다.

테이블명 : tb1

COL1 COL2
1A L1
1A L2
1A L3
1A L4
1A L5
1A L6
1A L7

테이블명 : tb2

COL2 COL3 COL4
L1 Y P3
L2 Y P3
L3 Y P3
L3 Y P3
L4 Y P3
L5 Y P3
L6 Y P3
L6 Y P3
L7 Y P2


쿼리문은


SELECT
	COL2,
	ISNULL((
		SELECT COUNT(*)
		FROM (
			SELECT 	MAX(COL3) AS TEST
			FROM tb2
			WHERE (COL2 = A.COL2 AND COL3 = 'Y')
			GROUP BY COL4
		) T) , 0) AS TEST_R
FROM tb1 A 

이렇게 사용하여 다음 결과를 얻고 싶습니다.

COL2 TEST_R
L1 Y
L2 Y
L3 Y
L4 Y
L5 Y
L6 Y
L7 Y

그런데, 아래와 같이 에러가 나타납니다.

SQL Error [1054] Unknown column 'A.COL2' in 'where clause'

아무리 찾아봐도 해결을 하지 못하여 이렇게 질문드립니다.

 

어떻게 쿼리문을 변경하면 처리할 수 있을까요?

감사합니다.

by pajama [2022.05.13 16:05:17]

outer join으로 바꿔야할듯 합니다.

 

SELECT
    A.COL2, TEST
FROM tb1 A
LEFT  JOIN (SELECT COL2, MAX(COL3) TEST FROM tb2) T
ON  A.COL2 = T.COL2

 


by tosswin [2022.05.13 16:40:40]

귀한 시간을 내주셔서 가르쳐 주심을 감사드립니다.

가르쳐주신대로 하고 공부하겠습니다.


by 마농 [2022.05.13 16:19:37]
SELECT a.col2
     , IFNULL(MAX(b.col3), 'N') test_r 
  FROM tb1 a
  LEFT OUTER JOIN tb2 b
    ON a.col2 = b.col2
   AND b.col3 = 'Y'
 GROUP BY a.col2
;

 


by tosswin [2022.05.13 16:42:10]

귀한 시간 내셔서 가르쳐주신 것에 대해 감사드립니다.

말씀하신대로 하니 원하는 것을 얻을 수가 있었습니다.

이 쿼리문도 서브 쿼리문이라 조금더 해봐야 하는데,

가르쳐주신 것을 기반으로 공부하겠습니다.

감사합니다.

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