SQL初学者在这里。我正在尝试将一个表(pgm_update)外部连接到另外两个表(family 和 family_act_visits)。一个 pgm_update 记录可以对应一个家庭记录或一个 family_act_visits 记录,或者两者都不对应;我的结果应该返回所有三种情况的数据。这两种架构都不好,连接必须在多个列上。这些单独的查询中的每一个都有效,但我无法将它们组合成一个查询。
SELECT p.last_name_wo, p.activity, p.participation, fav.*
FROM family_act_visits fav
RIGHT JOIN pgm_update p ON fav.folks_fk=p.folks_fk and fav.activity=p.activity
JOIN activities a on p.activity=a.activity
WHERE p.participation in ('c','a') and a.act_start_date>current_date()
SELECT p.last_name_wo, p.activity, p.participation, f.*
FROM family f
RIGHT JOIN pgm_update p ON f.folks_fk=p.folks_fk and f.activity=p.activity
JOIN activities a on p.activity=a.activity
WHERE p.participation in ('c','a') and a.act_start_date>current_date()
我对完整查询的尝试之一是:
SELECT p.last_name_wo, p.activity, p.participation, fav.*
FROM family_act_visits fav, family f
RIGHT JOIN pgm_update p ON fav.folks_fk=p.folks_fk and fav.activity=p.activity
RIGHT JOIN pgm_update p2 ON f.folks_fk=p2.folks_fk and f.activity=p2.activity
JOIN activities a on p.activity=a.activity
WHERE p.participation in ('c','a') and a.act_start_date>current_date()
这会收到错误消息“'on Clause'中的未知列'fav.folks_fk'”希望这篇长文章包含所需的所有信息......谢谢!