luchen94
luchen94
采纳率50%
2016-03-27 06:05

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

190
已采纳

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

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

众酬表中间表
会员表

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • enpterexpress 把分全给哥 5年前

    这取决于众筹表怎么设计

    点赞 评论 复制链接分享
  • wangzi_123456 wangzi_123456 5年前

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

    点赞 1 评论 复制链接分享
  • qq_21045521 test100000001 5年前

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

    点赞 评论 复制链接分享
  • Mr__Hacker Mr__Hacker 5年前

    select * from A where id in B

    点赞 评论 复制链接分享
  • hsd2012 我爱默小兜 5年前

    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.众酬角度,不再细说了。
    
    点赞 评论 复制链接分享
  • Qmen_Crow Qmen_Crow 5年前

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

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

    点赞 评论 复制链接分享
  • Crabime Crabime 5年前

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

    点赞 评论 复制链接分享
  • wangzi_123456 wangzi_123456 5年前

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

    点赞 评论 复制链接分享
  • luchen94 luchen94 5年前

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

    点赞 评论 复制链接分享

相关推荐