簡體   English   中英

SQL-根據查詢結果從一張表中獲取計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM