[英]MySQL query using info from seperate tables
我有一個相當復雜的SQL查詢,我正在尋找一些幫助。
我有兩個表:歷史表和詳細信息表。
歷史記錄表包含以下列。
Event Date(ev_date)
Event Code(ev_code)
Machine ID(mc_id)
“詳細信息”表包含以下列:
Machine ID(mc_id),
Location ID(lo_id)
Machine Name(mc_name)
我需要一個查詢,它返回位置ID給定的給定計算機組的給定日期范圍之間歷史表中事件數的計數。
所以,在sudo代碼中有點:
SELECT COUNT(*)
FROM history
WHERE ev_date (BETWEEN start_date AND end_date) AND ev_code = 1 AND ????
(mc_id必須具有來自詳細信息表的某些lo_id)。
這有意義嗎?
謝謝
SELECT COUNT(*)
FROM history h
WHERE h.ev_date BETWEEN @start_date AND @end_date
AND ev_code = 1
AND EXISTS(SELECT NULL
FROM details d
WHERE h.mc_id = d.mc_id
AND d.lo_id = @LocationID);
假設您在mc_id
history
和details
之間的一對一映射:
SELECT COUNT(*)
FROM history h
JOIN details d USING mc_id
WHERE h.ev_code = 1
AND h.ev_date between start_date and end_date
AND d.lo_id IN (?, ?, ?, ...)
或者ON h.mc_id = d.mc_id
而不是USING mc_id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.