`

之前的一个表之间的关联我没能查出来

 
阅读更多

65.  现在要做这个分销商没有个数,你也得在报表图上出来,这个怎么写。


66.  a.name拿到数据字典里面的name字段
select a.name,count(*) from t_data_dict a join
t_client b on a.id=b.client_level_id group by a.name     因为这里有聚合函数,所以你得用分组函数来分。   现在一查效果是
一级分销商  4
二级分销商  1
三级分销商  1
 
现在效果是出来了,但是我们的要求是没有的也得出来,有一个四级分销商,但是,四级对应的另一张表里面确实没有记录啊,

你看上面 是用什么连接啊,内连接,这个是把相等的拿出来,肯定不能用这种连接了啊,要不然怎么满足要求啊,


67.  你看这两张表以谁为主呢?肯定是数据字典啊,数据字典表在左边,你得用左连接,在右边你就用右连接,但是这么 一查
select a.name,count(*) from t_data_dict a left join
t_client b on a.id=b.client_level_id group by a.name
他把数据字典里面的什么中药啊箱啊,片啊,这些东西全查出来了,而且count(*)字段还是一个1


68.  这肯定不对我们 要的是级别
  select a.name,count(*) from t_data_dict a left join
t_client b on a.id=b.client_level_id where a.category='A' group by a.name
他的分销商级别是A.这样就对了。

69. 现在效果出来 了
一级分销商  4
二级分销商  1
三级分销商  1
四级分销商  1

这个四级应该是没有的啊,怎么也是1啊,因为你使用了左连接,他和右边一连接,不管你有没有那都是有一个了。
 

70.  所以主要取决于  count(*) 的事。count(*)他是不管的,只要你占一行在那他就统计一下,你这样就  select count(client_level_id) from t_clietn;他就会把不为空的拿出来。


71.  所以你应该在count里面以一个为准
  select a.name,count(b.client_level_id) from t_data_dict a left join
t_client b on a.id=b.client_level_id where a.category='A' group by a.name

分享到:
评论

相关推荐

    SQL实现两张无关联表的数据列合并在一张结果集中

    这里提到的“无关联表”意味着这两张表之间没有直接的关联字段或键值,因此不能直接通过JOIN等常规方式来实现数据的联接。为了完成这个任务,我们需要采用特定的技术手段。 #### 2. 分析示例代码 接下来,我们来...

    详解YII关联查询

    2. **一对一** (One-to-One): 例如,`tbl_user`表与`tbl_profile`表之间的关系,一个用户只能有一个个人信息详情。 3. **多对多** (Many-to-Many): 例如,`tbl_category`表与`tbl_post`表之间的关系,一篇文章可以...

    mysql多表查询和EXISTS查询性能对比

    - **Using where**:表示使用了WHERE子句来限制哪些行被匹配到下一个表或发送给客户端。除非有意想获取或检查表中的所有行,否则如果Extra值不是Using where且表连接类型是ALL或index,则可能意味着查询存在优化空间...

    Mybatis 一对多关联查询(两种方法)

    在Mybatis框架中,一对多关联查询是一种常见的数据操作,用于获取一个实体对象与其关联的多个子对象的数据。本文将详细解析两种实现Mybatis一对多关联查询的方法,并结合提供的文件来阐述其实现过程。 首先,我们来...

    91 深入探索多表关联的SQL语句到底是如何执行的?(1).pdf

    在这个过程中,一个表(例如t1表)首先被查询,其结果被用于进一步查询另一个表(例如t2表),这时t1表被称为“驱动表”,而t2表则被称为“被驱动表”。优化器通过驱动表中已筛选出的数据来驱动对被驱动表的查询,这...

    ORACLE测试题1_关联查询_答案

    关联查询是SQL语言中的一项核心功能,它允许从两个或多个表中检索数据,基于表之间的某种关联或连接条件。在本测试题中,关联查询将用于结合`tt_student`和`tt_assess_rule`表中的信息,从而获取特定班级所有学生的...

    MyBatis 三表外关联查询的实现(用户、角色、权限)

    MyBatis 是一个基于 Java 的持久层框架,提供了强大的关联查询功能。今天,我们将探讨如何使用 MyBatis 实现三表外关联查询,具体来说就是用户、角色、权限之间的关联查询。 数据库结构 在开始之前,让我们先了解...

    浅谈mysql中多表不关联查询的实现方法

    不关联查询通常用于合并不同表中的独立数据集,例如在一个场景中,我们需要同时查询`user`表和`user_history`表,并且这两张表之间没有直接的外键关系。在这种情况下,我们可以利用`UNION ALL`操作符来实现。 `...

    vfp表间关联[参考].pdf

    1. **打开表和相关索引文件**: 在建立关联之前,需要确保相关的表已经打开,并且已经创建了基于共有字段的索引。 2. **执行SET RELATION命令**: 使用SET RELATION命令建立两个表之间的关联。 3. **测试关联**: 通过...

    Excel导入数据库 关联,查询,删除

    例如,如果你有一个员工表和一个部门表,可以通过员工ID(部门ID)将两者关联,从而获取员工所在的部门信息。 4. **查询操作**:查询是数据库的核心功能,SQL语言提供了丰富的查询语句,如SELECT。你可以根据需要...

    Hibernate 关联关系映射分类

    这种关联通常需要一个中间表来存储这两个实体的外键,形成一个“多对多”的关系。 #### 单向关联 - 在多对多的单向关联中,实体A可以与实体B的多个实例关联,而实体B不知道它与哪些实体A关联。 #### 多向关联 - ...

    Spring+Hibernate 多对多关联映射---教师与学生表的级联增删改查

    在多对多关系中,通常需要一个中间表来存储两个实体之间的关联。在上面的代码中,我们使用`@JoinTable`注解来指定中间表`teacher_student`,并指定了连接字段`student_id`和`teacher_id`。 3. **Service层操作**:...

    Oracle两张表关联批量更新其中一张表的数据

    这通常涉及到两个表之间的关联操作。本文将详细介绍两种方法,用于在Oracle中实现两张表关联批量更新其中一张表的数据。 方法一(推荐): 这种方法利用了子查询和`EXISTS`子句。首先,我们在`SET`子句中创建一个子...

    Hibernate学习要点_one2one 一对一主键双线关联

    2. **数据库设计**:确保数据库表结构支持一对一的主键关联,即两个表具有相同的主键字段,且在其中一个表中该字段是外键。 3. **持久化操作**:在进行实体的保存、更新或删除操作时,需要注意维护一对一关系的完整...

    多表更新

    这个主题涉及如何有效地更新一个或多个相关联的表,确保数据的一致性和完整性。以下是对多表更新的详细解释。 一、多表关联与更新的基础 1. 外键约束:在关系型数据库中,表之间通过外键建立联系,这允许我们引用另...

    数据库查询2(各种查询,全)

    自表查询是指在同一个表内进行两次或多次连接的情况。这种查询方式主要用于处理表中数据之间的复杂关系。 ```sql SELECT T1.Sname AS Supplier1, T2.Sname AS Supplier2 FROM S AS T1, S AS T2 WHERE T1.Sno ; ``` ...

    完整版 Java开发实训课程系列-MyBatis框架技术 03.MyBatis关联映射查询与缓存配置(共25页).pptx

    - 使用`association`标签来实现,它可以将一个表中的记录与另一个表的相关记录关联起来。 - `property`指定结果对象的属性名,`javaType`指定属性的Java类型,`column`是外键字段名称,`select`用于指定另一个查询...

    mysql中的跨库关联查询方法

    FEDERATED引擎允许我们在本地数据库创建一个远程表的复制品,它只是一个表的定义,实际的数据仍然存储在远程数据库中。创建FEDERATED表的SQL语句示例如下: ```sql CREATE TABLE `table_name` ( ... ) ENGINE = ...

    SQL update 多表关联更新的实现代码

    在多表关联更新中,我们需要在FROM子句中引入其他相关的表,并使用JOIN操作来指定两个表之间的关联。以下是两种常见的SQL更新语句实现多表关联更新的方式: 1. **非JOIN方式(旧式方法)**: ```sql UPDATE A SET ...

    Mybatis-plus关联查询,关联无SQL,低代码开发平台

    Mybatis-plus则通过实体类之间的关联关系,自动帮我们生成相应的JOIN查询,避免了手动编写SQL的繁琐过程。它支持多种关联关系,如一对一、一对多、多对一、多对多,只需在实体类中定义相应的字段和注解,即可实现...

Global site tag (gtag.js) - Google Analytics