티켓, 티켓 사용자 및 사용자 테이블이 3 개 있습니다. 내 문제는 사용자 테이블에 나는 2 가지 유형의 사용자가있다 : 요청자와 해결 자 : 유형 1과 2. 요청자 (있는 경우)가 여러 개일 수 있고 해결자가있는 경우 여러 개가 될 수있는 티켓을 선택하려고한다.). 사용자 사례 또는 하위 쿼리?
SELECT
t.id, t.description,
(u.id where u.type = 1) AS requester,
(u.id where u.type = 2) AS solver
FROM
tickets t
INNER JOIN
tickets_users tu ON t.id = tu.ticket_id
INNER JOIN
users u ON tu.user_id = u.id
는 분명히 문제가 해결되지 않습니다
나는의 라인에서 뭔가를 생각하고 있어요.
표
는 다음과 같다 :티켓 :
ID Description
1 Description 1
2 Description 2
Tickets_users
ID Ticket_ID User_id Type
1 3 4 1
2 5 8 2
사용자
ID Name
1 John
2 Mary
감사합니다,
한편은 내가 조인 절에 서브 쿼리를 사용하여 해결책을 찾을 수 있다고 생각하지만, 나에게 그것은 초보 같습니다
SELECT
t.id, t.name AS ticket_name, type1.users_id AS requester,
type2.users_id AS solver
FROM
tickets t
INNER JOIN
(SELECT users_id, tickets_id
FROM tickets_users
WHERE TYPE = 1) type1 ON t.id = type1.tickets_id
INNER JOIN
(SELECT users_id, tickets_id
FROM tickets_users
WHERE TYPE = 2) type2 ON t.id = type2.tickets_id
테이블에 두 번 가입하거나 MAX (CASE WHEN ... THEN ... END) – Strawberry