weixin_53942559 2021-06-29 14:22 采纳率: 70.8%
浏览 370
已结题

left join 后怎么去重? distinct不起作用,group by报错?

  • 写回答

5条回答 默认 最新

  • CSDN专家-微编程 2021-06-29 15:03
    关注

    从你的sql语句中可以看出,你的sql基础有点差,建议先去学一下基础

    明显的错误如下:

    1.使用group by后面跟字段名 以该字段分组查询,所以select不用 *  而是group by的字段名,group by后面不跟条件

    2.left join 是左连接 用法以a,b表为例 select....from a left join b on a.xx=b,xx     a.xx和b.xx是相同等价字段

    3.distinct 是去重,用法是放在 select后面 字段名前面,比如 select distinct name from 表a,代表查询名字,名字各不相同

    3.顺序问题,where不能放在group by后面,而是having放在group by后面,having和where有相同的功能,不同在于位置不同

    sql书写顺序:select --> from --> where --> group by --> having --> order by 

    sql执行顺序:from --> where --> group by --> having --> select --> order by

     

          from: 需要从哪个数据表检索数据 。

      where: 过滤表中数据的条件。

      group by: 如何将上面过滤出的数据分组。

      having: 对上面已经分组的数据进行过滤的条件。

      select: 查看结果集中的哪个列,或列的计算结果。

      order by: 按照什么样的顺序来查看返回的数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 'Ruler 2021-06-29 14:24
    关注

    题主,你这是语法有问题,group by 后面要跟的是having做开头,而不是用 where

    评论
  • 袁承旭 2021-06-29 14:27
    关注

    group by 写where 后面,注意sql的语法顺序,另外group by 是按一个字段分组group by t.S_ID就行了,后面加个= a.naub_id干嘛?

    评论
  • =PNZ=BeijingL 2021-06-29 14:32
    关注

    1. group by 需要放到where 后面才行, 正确格式例如:

    select t.name from table t

    where  table.state=1

    group by  name

     

    2.  group by 后面表示分组的表字段, 不能是等于关联

     

     

    评论
  • 刘瑾言 2021-06-29 14:40
    关注

    sql错的地方太多了        left join on 后面条件不能单一个字段,group by 后面不能是一个条件。而且group by要放到where后面

    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日

悬赏问题

  • ¥15 win11安卓子系统打开谷歌登录不了切使用浏览器显示处于离线状态
  • ¥15 三维直角坐标系下,给定一个平面内四个点坐标,如何将四个点逆时针排序
  • ¥15 UnityWebRequest访问内网地址502
  • ¥20 Python语言来实现牛顿法(Newton's Method)解决非线性(系统)方程的问题。
  • ¥15 matlab控制工业相机采集图像
  • ¥25 R里做折线图和柱状图
  • ¥20 使用kokkos移植项目,遇到问题
  • ¥15 求该问题的Matlab代码
  • ¥15 python下使用pdpbox为何提示has no attribute 'pdp_isolate'?
  • ¥15 求java web病房管理系统项目,用netbeans做的