Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
询问解决方案sql查询复杂sql查询_Sql_Tsql - Fatal编程技术网

询问解决方案sql查询复杂sql查询

询问解决方案sql查询复杂sql查询,sql,tsql,Sql,Tsql,我有2张会员表和凭证表。 会员有多张凭证,凭证有多张会员 例如: 会员A有凭证1,凭证2 凭证1有成员memberA、membersB、memberC。 凭证2有成员memberA,memberC 会员B有凭证凭证1 会员C有凭证凭证凭证1、凭证2、凭证3 Vocher3有成员C、成员D 会员有凭证 Voucher4已成为会员 如何创建查询以获取从memberA到MemberD的所有关联成员都有凭证(按凭证关联) 谢谢 不清楚你桌上有什么。您能否至少为每个表提供两行输出 不清楚您期望的输出是什么

我有2张会员表和凭证表。 会员有多张凭证,凭证有多张会员

例如:

会员A有凭证1,凭证2 凭证1有成员memberA、membersB、memberC。 凭证2有成员memberA,memberC 会员B有凭证凭证1 会员C有凭证凭证凭证1、凭证2、凭证3 Vocher3有成员C、成员D 会员有凭证 Voucher4已成为会员 如何创建查询以获取从memberA到MemberD的所有关联成员都有凭证(按凭证关联)

谢谢

不清楚你桌上有什么。您能否至少为每个表提供两行输出


不清楚您期望的输出是什么。你能提供你期望好的输出是什么样子的吗?

这对于评论来说太长了

要正确表示成员和凭证之间的多对多关系,您确实需要第三个表,通常称为连接表。使用这样的表将大大简化您的设计,从而简化您的查询

考虑以下设计:

members
    member_id -- primary key
    -- other columns: member name, email, address...

vouchers
    voucher_id -- primary key
    -- other columns

members_vouchers  --> junction table
    member_id    -- foreign key to members(member_id)
    voucher_id   -- foreign key to voucher(voucher_id)
    primary key(member_id, voucher_id)
现在,您可以轻松生成一个查询,列出所有成员及其关联凭证,如:

select m.*, v.*
from members m
inner join members_vouchers mv on mv.member_id = m.member_id
inner join vouchers v on v.voucher_id = mv.voucher_id

请提供样本数据和预期输出。另外,请使用CTE显示您的尝试阅读此内容以供参考。
select m.*, v.*
from members m
inner join members_vouchers mv on mv.member_id = m.member_id
inner join vouchers v on v.voucher_id = mv.voucher_id