두 테이블, events
및 tickets
이있는 데이터베이스가 있습니다. events
테이블에는 이벤트 행과 각 티켓이 tickets
개 들어 있습니다. 예를 들어MySQL - 이벤트에 대해 판매 된 티켓을 계산하려고합니다.
,
events
------
id name capacity
1 Test 10
2 Test2 20
3 Test3 15
tickets
-------
id event_id customer_id
1 1 (value here doesn't matter)
2 1
3 3
4 1
5 3
그래서 내가 이벤트 # 1-3 티켓이 판매 된 것을 볼 수는, 이벤트 # 2-0 티켓 및 이벤트 # 3-2 티켓 판매되었습니다.
모든 이벤트를 선택하는 쿼리와 티켓 용량보다 적은 이벤트 용량 인 열 available
을 만들려고합니다.
SELECT
events.id,
events.name,
events.capacity,
events.capacity - COUNT(tickets.id) AS available
FROM
events
INNER JOIN tickets ON events.id = tickets.event_id
그러나,이 티켓은 아직 판매되었습니다 havn't는 이벤트를 반환하지 않습니다
나는이 쿼리가 있습니다. 나는 그것이 조인의 유형일지도 모른다라고 생각했다. 그러나 나는 성공과 함께 여러 가지 것을 시험해 보았다.
어디서 잘못 될지 잘 모르겠습니다.
SELECT events.id,
, events.name
, events.capacity
, events.capacity - COUNT(tickets.id) AS available
FROM events
LEFT JOIN
tickets
ON events.id = tickets.event_id
group by
events.id,
, events.name
, events.capacity
MySQL이 그것을 필요로하지 않는다하더라도, 그것은 group by
절에 명시 적으로 모든 비 집계 열을 나열하는 좋은 방법이있다 : 당신은 거의 다
감사합니다. 왼쪽 조인을 시도했는데, 부분적으로 그룹을 놓쳤습니다. – Josh