我遇到的问题是比较两个表,并返回两个表中没有特征的结果。我正在使用剧院式的预订和座位号码。
所以我的第一张桌子是座位表,就像这样。
row_no area_name
a01 front stalls
a02 front stalls
可以使用多个区域名称,但它们都使用与上述相同的格式。对于此示例,我将仅在前档位中使用座位a01至a20。
第二个表格是预订表格,如下所示
ticket_no row_no date_time customer_name
001070714 a01 21:00 7.7.14 John Doe
002070714 a02 21:00 7.7.14 John Doe
我想要实现的是将特定展示时间的预订座位列表与座位表中的座位总数进行比较,然后按area_name对结果进行分组,以便我希望能够实现像
这样的结果area_name row_no
front stalls 18
其中18是座位表中描述的20套完整座位中的免费座位数。
我如何着手实现这个答案?
EDIT 这是我到目前为止所尝试的
SELECT
DISTINCT s.area_name, row_no
FROM seat AS s
FROM booking AS b
COUNT * WHERE s.row_no != b.row_no
WHERE b.title = rammstein
WHERE s.area_name = 'front stalls'
GROUP BY s.area_name;
答案 0 :(得分:0)
尝试类似:
SELECT seat_q.area_name, (seat_q.num_seats - COUNT(*) AS occupied_seats) AS free_seats
FROM booking b
WHERE row_no IN (
SELECT s.row_no
FROM seat s
WHERE s.area_name = 'front stalls'
GROUP BY s.area_name)
JOIN
(SELECT s.row_no, s.area_name, COUNT(s.*) AS num_seats
FROM seat s
WHERE s.area_name = 'front stalls'
GROUP BY s.area_name) AS seat_q
ON seat_q.row_no = b.row_no
WHERE b.date_time = '21:00, 7.7.14'