조인 조건 질문드립니다
168
작성한 질문수 11
강사님 안녕하세요.
풀이에서 같은 users 테이블을 두번 inner join 하시지요. (영상 11분)
저는 다음과 같이 작성했어요. (서브쿼리 부분만 옮겨 적을게요)
FROM
(SELECT Request_at, count(*) as total_count, SUM(CASE WHEN status = 'completed' THEN 0
ELSE 1
END) as cancel_count
FROM trips AS t
INNER JOIN users AS U
ON t.client_id = u.users_id OR t.driver_id = u.users_id
WHERE (t.request_at BETWEEN '2013-10-01' AND '2013-10-03') AND u.banned = 'No'
GROUP BY request_at) sub
같이 JOIN은 한번만 하고 ON을 두번 적어줬는데 값이 다르게 나오더라고요.
user_id 중 client_id과 driver_id에 각각 매치되는 부분을 OR로 연결하면 될 것 같은데... 왜 안되는지 잘 모르겠습니다.
설명 부탁드릴게요!
답변 1
1
FROM 절에서 JOIN으로 만들어지는 테이블 자체가 달라지기 때문입니다.
적어주신대로 JOIN을 하면 Trips 테이블의 ID당 2개씩의 row가 만들어지게 됩니다.
같은 컬럼(Users의 users_id)을 client_id와 붙인 것과, driver_id와 붙인 것, 이 둘을 모두 출력해줘야 하기 때문에요.
SELECT *로 확인해보시면 차이점을 아실 수 있을 거에요!
강의기간 연장문의
0
107
2
HackerRank : Weather Observation Station 11 문제풀이
0
123
1
SET4의 3번 자리바꾸기 문제 다른 풀이
0
197
1
set 3의 3번 문제- 데이터의 개수가 짝수일 때 질문
0
276
2
set 1 - 2번 문제풀이
0
268
1
세트2번 Binary Tree Nodes 질문입니다!
0
231
2
고급문제풀이set1 3번 문제
0
255
2
고급문제풀이 3번 INNERJOIN 활용시 오류
0
274
1
회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ
0
324
1
[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?
0
382
1
[Weather 20] 따라 했는데 왜 작동 안해요?
0
283
1
weather-20 왜 작동 안하는건가요?
0
233
1
Ollivander's Inventory 윈도우 함수 min() over
0
319
1
LeetCode 626. Exchange Seats 리트코드 제출 오류
0
510
2
섹션4에 3번 문제풀이 질문
0
386
2
SQL Project Planning 풀이 관련 문의
0
589
2
섹션 1번 4번문제 풀이
1
290
1
섹션1 2번 문제풀이 강의
0
308
1
set2 - 1 같게 작성했는데 답이 이상합니다.
0
289
1
max함수를 써서 풀지는 못하나요?
0
306
1
윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?
0
265
1
(Hacker Rank)Binary Tree 문제 질문
0
329
1
쿼리 두개로 작성하고 싶지 않아 하나로 어떻게든 만들어 봤습니다.
0
298
1
이런 풀이는 왜 안되는지 궁금해요
0
279
1





