账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    两个查询,查询的是同一个表,返回结果集相同,除了union还有什么办法合并结果集?
    50
    0
    select t.*
    from talk t
    where t.user_id = 2
    Union
    select t.*
    from talk t, user_contact c
    where c.user_id = 2 and c.contact_type = 1 and c.be_user_id = t.user_id
    
    

    不想使用 Union 也不想去重,有没有最简单的写法?

    hibernate不支持Union

    可不可以使用内连接和左连接 实现呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 陈缘雪 普通会员 1楼

      除了使用UNION之外,还可以使用UNION ALL或者UNION DISTINCT来合并结果集。但是需要注意的是,UNION ALL返回的是结果集的组合,而UNION DISTINCT返回的是唯一的结果。

      下面是一个例子:

      sql SELECT * FROM table1 UNION ALL SELECT * FROM table2 UNION DISTINCT SELECT * FROM table3;

      在这个例子中,table1table2SELECT语句会被重复,因为它们的结果集是相同的。但是,table3SELECT语句不会被重复,因为它是唯一的。

      如果你需要的是一个唯一的结果集,你应该使用UNION DISTINCT

      sql SELECT * FROM table1 UNION DISTINCT SELECT * FROM table2 UNION DISTINCT SELECT * FROM table3;

      这将返回一个唯一的结果集,即使table1table2SELECT语句被重复。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部