[英]SQL - get count from one table based on result of query
我有兩個表,一個表包含事件的詳細信息(名稱,時間等),另一個表包含客戶為每個事件進行的預訂記錄。 我希望能夠查詢數據庫並獲取一組包含事件表中所有字段的結果,以及每個事件的預訂數量,例如:
event_name,event_time,total_spaces_available,number_of_bookings
目前,我正在通過遍歷PHP中的結果來解決此問題,但是可以在SQL中完成嗎?
我希望能夠執行以下操作:
SELECT *, COUNT(SELECT * FROM bookings WHERE event_id=<VARIABLE>) FROM events
但是我不知道語法
我在MySQL中
任何幫助將非常感激!
相關子查詢的可能解決方案:
SELECT e.event_name,
e.event_time,
e.total_spaces_available,
(SELECT count(*) FROM bookings b WHERE b.event_id=e.event_id) AS number_of_bookings
FROM events e
編輯:如評論中所述,這可能比聯接解決方案的性能差。 盡管我相信最新的MySQL仍將它們轉換為聯接。
做一個group by
Select event_name, event_time, total_spaces_available, count(1) number_of_bookings
from events
inner join booking on events.id = bookings.event_id
group by event_name, event_time, total_spaces_available
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.