簡體   English   中英

MySQL查詢使用來自單獨表的信息

[英]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 historydetails之間的一對一映射:

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.

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