我是编程新手。
这是作业.....这也是我的第一篇SO帖子!!
你好世界! :)
我试图使用连接/联合或("其他"方法??)对内部联接查询的结果使用同一个表中的其他行(基于匹配的辅助ID)。
我正在使用输出创建视图。
我有一个成员表作为m
每个成员都表示为具有family_ID
的家庭组的一部分每个家庭都有一个主要联系人(primaryContact_ID)支付会员费。每个primarycontact_ID的会员付款都在一个成员支付表中作为mp。
我希望选择在某一年内被视为已付款的所有会员。注意:这意味着在家庭主要联系人已经支付的情况下,其他家庭成员因此被视为已付款/当前。
首先,我可以轻松选择付费的主要联系人。使用:
SELECT m.memberNumber, m.firstName, m.lastName, m.family_ID , mp.yearCurrentTo
FROM member m
INNER JOIN membershippayment mp
on m.primaryContact_ID = mp.primaryContact_ID
WHERE mp.yearCurrentTo = 2015
输出
memberNumber | firstName | lastName | family_ID | yearCurrentTo
6 | ted | smith | 2 | 2015
但是Ted有另外3个家庭成员(也在成员表m中),如family_ID =" 2"
所示我如何(选择或加入或联合或"其他")m.family_ID为Ted的其他家庭成员?
family_id值将是动态的,并且具有一个或多个值,具体取决于内部联接结果集。
我尝试使用第二个别名将内部联接添加到原始成员表:
SELECT m.memberNumber, m.firstName, m.lastName, m.family_ID, mp.yearCurrentTo
FROM member m
INNER JOIN membershippayment mp
on m.primaryContact_ID = mp.primaryContact_ID
INNER JOIN member m2
on m2.family_ID = m.family_ID
WHERE mp.yearCurrentTo = 2015
但我得到的是Teds细节重复了3次。
memberNumber | firstName | lastName | family_ID | yearCurrentTo
6 | ted | smith | 2 | 2015
6 | ted | smith | 2 | 2015
6 | ted | smith | 2 | 2015
6 | ted | smith | 2 | 2015
它应该是每个额外的家庭成员,具有唯一的memberNumber但匹配的family_ID
我也试过了一个联盟但得到了类似的重复行。
从这里开始,我很难过。
这一切都可以在同一个查询中实现吗?我正在考虑使用嵌套。但是我试图迷失了。
或者我应该使用可更新的视图并执行单独的选择和更新查询。
谢谢!