我需要在查询中多次加入包含名称的联系人表(联系人),以获取父名和子名。我还需要加入一个具有父子关系的表,以便知道哪个孩子属于哪个父(childs_caregiver)。下面的查询是获取父名和子名,但没有将正确的父项附加到子项 - 它只是运行所有可能的记录。我不知道如何正确加入父子关系表(通过childcaregiverID)。
select c.contactid, ct.contactid,
c.lastname as 'Parent Last Name', c.firstname as 'Parent First Name', c.address, c.city,
c.state, c.postalcode, c.homephone, c.workphone, ct.lastname as 'Child Last Name', ct.firstname as 'Child First Name'
from contacts c
inner join childs_caregivers cc on c.contactid=cc.caregiverid,
contacts ct
inner join childs_caregivers cs on ct.contactid=cs.childid,
contacts cts
inner join childs_caregivers cv on cts.contactid=cv.childcaregiverid
where c.caregiver=1
感谢您的期待!
答案 0 :(得分:0)
您与c
加入ct
,cts
和childs_caregivers
,但彼此不加入。如果多个contact
记录之间存在层次关系,则需要在DDL(架构)中表达此关系。为parent_id
和“子”记录添加列,指定作为“父”的contact
的主键。然后在WHERE语句中将contact
表连接在一起。