查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊、、

一个是众酬表,一个是会员表,还有个这两者的中间表。
会员可以参与多个众酬
众酬可以被多个会员参与

1.会员角度:会员登录,要查询当前所有的众酬列表并且标记哪些众酬当前会员已参与
2.众酬角度:进入某个众酬详情可罗列当前参与此众酬的会员列表

众酬表中间表
会员表

这取决于众筹表怎么设计

就这两个sql语句啊 来点人。。

select *,(select count(1) from 众筹会员表 where id=z.id) as canyu from 众筹表 t

select * from 会员表 where id in (select 会员id from 众筹会员表 where 众筹id=你想要查询的众筹id)

你可以用hibernate映射两个PO之间的实体关系,然后写一个测试类去查询,它会自动帮你写好SQL语句,通常不记得SQL语句怎么写的都是这么干的

1.会员角度:SELECT 会员.会员Id,众筹.众筹Id,会员是否参与(属性名)
FROM 会员表,众筹表
WHERE 会员.会员Id = 中间表.会员Id
AND 中间表.众筹Id = 众筹表.众筹Id;
2.众筹角度:SELECT 众筹.众筹Id,会员.会员Id,众筹详情(相关属性名)
FROM 众筹表,会员表
WHERE 会员.会员Id = 中间表.会员Id
AND 众筹表.众筹Id = 中间表.众筹Id;

(希望对你有帮助!!!)

1.会员角度:
假设会员id=4
众酬表:public_pay
中间表:pay_relation
会员id :uid

SELECT
s.*,IFNULL(t.members,0) AS uid
FROM
public_pay AS s
LEFT JOIN
(SELECT
in_crowdfunded as id,
members
FROM
pay_relation
WHERE members = 4) AS t
ON t.id=s.id;

    解释:如果uid不为0,代表该活动,uid=4的会员参与。

    2.众酬角度,不再细说了。

select * from A where id in B

会员角度:select * , 已参与=case when 已参与会员id=该会员ID then '已参与' else '未参与' end from 众筹表
众筹角度:select * from 众筹表 where 众筹ID=该众筹ID