我有兩個查詢計數數據:兩次與計數SELECT查詢到一個查詢
SELECT x.Id, COUNT(DISTINCT y.Id)
FROM X x
INNER JOIN Y y ON x.Id = y.otherId
SELECT x.Id, COUNT(DISTINCT z.Id)
FROM X x
INNER JOIN Z z ON x.Id = z.otherId
兩個查詢返回正確的值執行已分離時。
但我想這些查詢相結合,一個單一的查詢:
SELECT x.Id, COUNT(DISTINCT y.Id), COUNT(DISTINCT z.Id)
FROM X x
INNER JOIN Y y ON x.Id = y.otherId
INNER JOIN Z z ON x.Id = z.otherId
當我做到這一點,相比於單獨執行的查詢時,這兩個方面都是錯誤的。
爲什麼會發生這種情況,我真的很困惑。解決辦法可能很簡單,但我現在還沒有任何線索。
你好,爲什麼inner join會過濾出兩個表中不匹配的值?例如,我使用x.Id = y.otherId,這應該得到匹配的值,不是嗎? – Swag
@ y451n。 。 。一些'x.id'在'y'表中有匹配;有些在'z'表中有匹配。一些在兩個,但一些只在一個。通過內連接,您只能在兩個表中獲得匹配。 –