我是 postgres 的新手,這個模式正在進行中,有很多冗余列用于資料檢查。
當我將“penn_survey”和“brazil_legacy_survey”加入“visit”表時,為什么會收到一個空查詢?如果我只將“penn_survey”加入“visit”表,則查詢正常作業,反之亦然“brazil_legacy_survey”。然而,當我嘗試在單個查詢中將兩個調查表連接回“訪問”表時,它會回傳一個空表。
我是否需要不同的列標題或單獨的外鍵 ID?是我對加入結構的理解嗎
-- Data Check
select v.date, v.site, ps.site, ps.date, b.site, b.date
from visit v
join penn_survey ps on ps.visit_id = v.visit_id
join brazil_legacy_survey b on b.visit_id = v.visit_id


-- Joining only penn_survey table
select v.date, v.site, ps.site, ps.date
from visit v
join penn_survey ps on ps.visit_id = v.visit_id

uj5u.com熱心網友回復:
擴展評論,對兩個調查使用左連接應該可以作業,但是除非您添加where包含和/或陳述句的子句,否則它可能會回傳額外的資料行。可能更容易將兩個查詢聯合起來并控制每個查詢中的條件。
select 'penn' as survey, v.date as visit_date, v.site as visit_site,
ps.date as survey_date, ps.site as survey_site
from visit v
join penn_survey ps on ps.visit_id = v.visit_id
union
select 'brazil', v.date, v.site, b.date, b.site
from visit v
join brazil_legacy_survey b on b.visit_id = v.visit_id ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515051.html
下一篇:將大量列附加到1列中
