问题描述
- 查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊、、
-
一个是众酬表,一个是会员表,还有个这两者的中间表。
会员可以参与多个众酬
众酬可以被多个会员参与1.会员角度:会员登录,要查询当前所有的众酬列表并且标记哪些众酬当前会员已参与
2.众酬角度:进入某个众酬详情可罗列当前参与此众酬的会员列表
解决方案
这取决于众筹表怎么设计
解决方案二:
select *,(select count(1) from 众筹会员表 where id=z.id) as canyu from 众筹表 t
解决方案三:
你可以用hibernate映射两个PO之间的实体关系,然后写一个测试类去查询,它会自动帮你写好SQL语句,通常不记得SQL语句怎么写的都是这么干的
解决方案四:
select * from A where id in B
解决方案五:
就这两个sql语句啊 来点人。。
解决方案六:
1.会员角度:SELECT 会员.会员Id,众筹.众筹Id,会员是否参与(属性名)
FROM 会员表,众筹表
WHERE 会员.会员Id = 中间表.会员Id
AND 中间表.众筹Id = 众筹表.众筹Id;
2.众筹角度:SELECT 众筹.众筹Id,会员.会员Id,众筹详情(相关属性名)
FROM 众筹表,会员表
WHERE 会员.会员Id = 中间表.会员Id
AND 众筹表.众筹Id = 中间表.众筹Id;
(希望对你有帮助!!!)
解决方案七:
SQL查询时间段的语句写法
查询最大值SQL语句写法
解决方案八:
会员角度:select * , 已参与=case when 已参与会员id=该会员ID then '已参与' else '未参与' end from 众筹表
众筹角度:select * from 众筹表 where 众筹ID=该众筹ID
解决方案九:
select * from 会员表 where id in (select 会员id from 众筹会员表 where 众筹id=你想要查询的众筹id)
解决方案十:
1.会员角度:
假设会员id=4
众酬表:public_pay
中间表:pay_relation
会员id :uid
SELECT
s.*,IFNULL(t.members,0) AS uid
FROMpublic_pay
AS s
LEFT JOIN
(SELECT in_crowdfunded
as id
,members
FROMpay_relation
WHERE members
= 4) AS t
ON t.id
=s.id
;
解释:如果uid不为0,代表该活动,uid=4的会员参与。
2.众酬角度,不再细说了。