0
我有我的數據庫中下表:SQL查詢與M:N的關係
sites (SiteID, SiteName)
parameters(ParameterID, ParameterName, ParameterUnits)
sites_parameters(SiteID, ParameterID)
一個站點可以測量零個或多個參數,例如該網站「藍湖」辦法「溫度」和「水水平」。
我需要編寫以下SQL查詢: 查找所有測量所有指定參數的站點。例如,找到所有在同一地點測量溫度,水位和壓力的場所。
對於兩個參數(假設參數的ID爲1和2)下面的查詢工作:
SELECT s.SiteID, s.SiteName, p1.ParameterID, p2.ParameterID
FROM sites s
INNER JOIN sites_parameters p1 ON s.SiteID = p1.SiteID
INNER JOIN sites_parameters p2 ON s.SiteID = p2.SiteID
WHERE p1.ParameterID = 1 AND p2.ParameterID = 2
如何編寫查詢,如果我需要找到3個或多個參數的網站嗎?我設法使它工作的唯一途徑是增加一個額外的INNER JOIN語句給每個額外的參數:
SELECT s.SiteID, s.SiteName, p1.ParameterID, p2.ParameterID, p3.ParameterID
FROM sites s
INNER JOIN sites_parameters p1 ON s.SiteID = p1.SiteID
INNER JOIN sites_parameters p2 ON s.SiteID = p2.SiteID
INNER JOIN sites_parameters p3 ON s.SiteID = p3.SiteID
WHERE p1.ParameterID = 1 AND p2.ParameterID = 2 AND p3.ParameterID = 3
是否有書面查詢的任何其他方式?
謝謝!您的第一個查詢完美無缺。 – jirikadlec2