创建 CASE_MEMBER 的别名,并在连接中包含 WHERE 条件。所以你的加入将是:
对于 CASE_MEMBER 到 DEMOGRAPHICS:
case_member.member = demographics.memberid and case_member.role='child'
对于 CASE_MEMBER 到 DEMOGRAPHICS_PARENT(DEMOGRAPHICS 的别名):
case_member.member = demographics_parent.memberid and case_member.role='parent'
假设您创建(使用来自其他问题的字段名称)、来自 case_member.caseid 的“案例 ID”对象、来自人口统计.ssn 的“儿童 SSN”和来自人口统计_父母.ssn 的“父 SSN”。创建包含所有这三个对象的报告将产生:
SELECT
case_member.caseid,
demographics.ssn,
demographics_parent.ssn
FROM
case_member,
demographics,
demographics demographics_parent
WHERE
(case_member.member = demographics.memberid
and case_member.role='child')
(and case_member.member = demographics_parent.memberid
and case_member.role='parent')
这应该产生你想要的。
请注意,在此示例中,由于我们同时包含子表和父表,因此我们将在结果集中获得两行。一种带有空白的子 SSN,另一种带有空白的父 SSN。为避免这种情况,您需要在每个周围放置一个 max()。