reservations (id, place_id, confirmed_at, paid_at)
和 places (id, name)
我需要返回可單獨表達瞭如下的查詢彙總:
-- Confirmed
SELECT places.id, places.name, COUNT(reservations.*) as total_confirmed
FROM reservations
INNER JOIN places ON places.id = reservations.place_id
WHERE
reservations.confirmed_at IS NOT NULL
GROUP BY places.id, places.name
-- Paid
SELECT places.id, places.name, COUNT(reservations.*) as total_paid
FROM reservations
INNER JOIN places ON places.id = reservations.place_id
WHERE
reservations.paid_at IS NOT NULL
GROUP BY places.id, places.name
-- Paid Uncofirmed
SELECT places.id, places.name, COUNT(reservations.*) as total_paid_unconfirmed
FROM reservations
INNER JOIN places ON places.id = reservations.place_id
WHERE
reservations.paid_at IS NOT NULL AND reservations.confirmed_at IS NULL
GROUP BY places.id, places.name
我如何重寫這些查詢到一個單一的並返回所有必要的?
我懷疑你的查詢有一定的錯別字,你叫三列「total_confirmed」 – DaveRlz
什麼,如果有一些地方有沒有保留或可能有多個預約嗎?它會影響'SUM'。 –
你可以檢查它.. – jainvikram444