我正在嘗試對未按預期運行的 Athena 運行查詢:
select distinct aw.year, aw.month, aw.day
from aw
left join f on aw.c1= f.c1
and aw.c2 = f.c2
and aw.c3 = f.c3
and aw.year = '2022'
and aw.month = '2'
and aw.day = '5'
我希望此查詢回傳 2022、2、5,但它回傳其他幾個年、月和日值。以下查詢作業正常,僅回傳 2022、2、5。
select distinct aw.year, aw.month, aw.day
from aw
join f on aw.c1= f.c1
and aw.c2 = f.c2
and aw.c3 = f.c3
and aw.year = '2022'
and aw.month = '2'
and aw.day = '5'
問題是當我添加左連接時,我還添加了所需年月日的檔案管理器。我在這里邏輯上做錯了什么?
uj5u.com熱心網友回復:
您似乎將 a 中的條件與 a 中的ON條件混淆了WHERE。
您的left join查詢回傳了aw具有其他值的行,因為您為如何連接表之間的行提供了條件。它不限制“左”表中的行。
如果您只想回傳 LEFT 表 ( aw) 日期匹配的行2022-02-05,那么您應該將這些條件放在WHERE:
select distinct aw.year, aw.month, aw.day
from aw
left join f on aw.c1 = f.c1
and aw.c2 = f.c2
and aw.c3 = f.c3
where aw.year = '2022'
and aw.month = '2'
and aw.day = '5'
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/427761.html
上一篇:如何抓取兩個表之間的相關行?
