精华内容
下载资源
问答
  • 一张表里,不同字段值相同的两条记录,查询条记录不同字段的语句怎么写? 列车(记录号,执行日期,车次,计划到站时间,计划出站时间,关联车次) Train(Rowid, Sch_Date, Train_Num, Sch_Start_Time, ...

    一张表里,不同字段,值相同的两条记录,查询这两条记录中不同字段的语句怎么写?

    列车表(记录号,执行日期,车次,计划到站时间,计划出站时间,关联车次) Train(Rowid, Sch_Date, Train_Num, Sch_Start_Time, Sch_Stall_Time, Train_Rlv) 100000001, 20100101, 3231, 201001011110, 201001011305, 3232 100000002, 20100101, 3232, 2010...展开
    风遂火愿 | 浏览 181 次
    发布于2014-03-03 10:42 最佳答案
    select t1.Sch_Stall_Time ,t2.Sch_Start_Time

    from Train t1

    left join Train t2 on t1.Train_Rlv = t2.Train_Num

    /**

    declare @Train table (
    Rowid nvarchar(100),
    Sch_Date char(8),
    Train_Num char(4),
    Sch_Start_Time char(12),
    Sch_Stall_Time char(12),
    Train_Rlv char(4)
    )

    insert into @Train values('100000001', '20100101', '3231', '201001011110', '201001011305', '3232')
    insert into @Train values('100000002', '20100101', '3232', '201001011410', '201001011605', '3231')

    select t1.Sch_Stall_Time ,t2.Sch_Start_Time
    from @Train t1
    inner join @Train t2 on t1.Train_Rlv = t2.Train_Num

    Sch_Stall_Time Sch_Start_Time
    -------------- --------------
    201001011305 201001011410
    201001011605 201001011110
    */
    因为你这里记录1的Train_Rlv 和记录2的Train_Num 相同,记录2的Train_Rlv 和记录1的Train_Num 相同,所以出了两行记录,如果把t2.Train_Rlv 改为其他的值(如3233),结果就是
    Sch_Stall_Time Sch_Start_Time
    -------------- --------------
    201001011305 201001011410
    展开全文
  • 分别找到A表和B表中x1字段的值为001时x2字段(A表)和x3字段(B表) 怎样写mysql语句效率才高?A表数据量在100万以上,B表数据量在60万以上,A表中x2字段为主键,B表中x2字段为主键,x3为unique索引
  • 两张表 A,B,都有字段 id, 查询A表中所有 A.id 在 B表中也存在记录
  • 这是查询条或者条以上数据 --先分组,在统计 select a.code from ldcode a where 1=1 GROUP BY a.code HAVING COUNT(a.code)> 1 这是查询有3条相同数据情况--先分组,在统计 select a.code from ...

    这是查询有两条或者两条以上的数据  --先分组,在统计

    select a.code from ldcode a where 1=1 GROUP BY a.code HAVING COUNT(a.code)> 1

    这是查询有3条相同数据的情况 --先分组,在统计

    select a.code from ldcode a where 1=1 GROUP BY a.code HAVING COUNT(a.code)= 3

     

    展开全文
  •  以上问题实际上就是查询数据库表中某一字段值重复记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同记录方法。 现在假设数据库表名为student,里面有字段Sno(学号),ID...
  • (Access 查询同一张表中某个字段含有重复项记录)记录动力总是来自于工作中遇到问题。上次只要根据某个字段把有重复项记录列出来,这次条件增多了,要根据个或个以上字段来判断,当这些字段的值全部相同...
    这篇文章是对我自己另一篇文章的补充。(Access 查询同一张表中某个字段含有重复项的记录)
    

    记录的动力总是来自于工作中遇到的问题。上次只要根据某个字段把有重复项的记录列出来,这次条件增多了,要根据两个或两个以上字段来判断,当这些字段的值全部相同时,才认为出现了重复记录。

    还是以上次的数据为例吧,略有修改。表名 Student

    ID  Name City  Address
    1  徐俊  北京  北京市东四北大街520号
    2 王洪涛  北京   北京市西单北大街151号
    3 张立涛   大连   大连市西岗区新开路69号
    4 佘高峰  济南  山东省济南市泺文路50号
    5  徐俊  上海  上海市静安区南阳路46号
    6  张忠飞  上海   上海市肇嘉浜路414号
    7  徐俊   上海   上海市乳山路150号

    从城市角度看,一个城市有很多学员很正常;中国人重名的多,单看名字很难说是不是同一个人。这次我们的查询要结合“City”和“Name”两个字段,只有这两个字段的值都相等,我们才进一步检查是不是同一个人。

    先用Access 2003 提供的“查找重复项查询向导”生成一个查询看看:

    SELECT student.Name, student.City, student.Address
    FROM student
    WHERE ((student.Name) In (SELECT [Name] FROM [student] As Tmp GROUP BY [Name], [City] HAVING Count(*)>1  And [City] = [student].[city]))
    ORDER BY student.Name, student.City

    结果是:

      Name   City   Address
     徐俊 上海 上海市乳山路150号
     徐俊 上海 上海市静安区南阳路46号

    注意: 徐俊 北京 没有列出来,符合我们的预期,因为我们这次是两个标准。

    不过我觉得Access 的向导生成的语句有点搞,看上去不是那么一目了然。

    这条SQL语句依然用了子查询“select name from student group by name, city  having count(*)>1”。这个子查询的意思是:把student表里的记录同时按名字和城市组合在一起,并把组合后数量大于1的记录返回。就这个例子而言,这条子查询的返回值是“徐俊/上海”。

    但是跟单个字段查找重复值不一样的地方是,这次多了个“And [City] = [student].[city]”,我们这次的子查询的全部内容是:

    select name from student as Tmp group by name, city  having count(*)>1 And [City] = [student].[city]

    这个子查询有外部条件,这就让事情有点复杂了。在子查询里使用外部条件,需要对SQL 语句使用的相当熟练和有技巧。

    我换了种SQL的写法来达到同样效果,自己觉得看上去清晰点。

    SELECT student.Name, student.City, student.Address
    FROM student  inner join
    (SELECT Name, city  FROM student  GROUP BY Name, City  HAVING Count(*)>1  ) As Tmp
    ON  student.Name=Tmp.Name  AND student.city = Tmp.city
    ORDER BY student.Name, student.City

    展开全文
  • 我们要对数据库两张表进行管理查询,但是不幸的是这两张表相同的字段名,导致最后查询出来的结果里这两个字段的是相同的!很显然某一个被另一个给覆盖了,而原因就是:多表关联查询时有相同的字段名,解决...

    多表关联查询有相同字段的解决方案

    问题描述

    我们要对数据库中的两张表进行管理查询,但是不幸的是这两张表有相同的字段名,导致最后查询出来的结果里这两个字段的值是相同的!很显然某一个被另一个给覆盖了,而原因就是:多表关联查询时有相同的字段名,解决方案其实很简单,定义结果集和查询的时候都取一个别名就可以了!

    现场还原

    试图将问题的本质反映清楚,所以我写的很简洁,只留下关键部分。

    我参考了某个博主的类的定义,他写的很全。

    实体类1:User.java

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
        private Integer id;
        private String name;
        private Integer age;
        private String address;
        //一对多映射集合
        private List<Account> accounts;
    }
    

    实体类2:Account.java

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class Account {
        private Integer id;
        private Integer uid;
        private Double money;
    }
    

    UserMapper 接口:

    public interface UserMapper {
        List<User> findAllUser();
    }
    

    mapper.xml文件:下面写法是错误的,这样查出来的id只有一个

    <mapper namespace="com.tedu.dao.UserMapper">
        <resultMap id="userAccountMap" type="user">
            <id column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="age" property="age"/>
            <result column="address" property="address"/>
            <collection property="accounts" javaType="ArrayList" ofType="Account">
                <id column="id" property="id"/>
                <result column="uid" property="uid"/>
                <result column="money" property="money"/>
            </collection>
        </resultMap>
        
        <select id="findAllUser" resultMap="userAccountMap">
            select 	u.id, u.name, u.age, u.address,
            		a.id, a.uid, a.money
            from user u
            left join account a
            on u.id = a.uid;
        </select>
    

    解决方案

    要解决这个问题很简单,拿上面的例子来说,我们要给结果集userAccountMap的字段起个别名,然后在下面的select语句中查询时再给字段起个相同的别名:

    <mapper namespace="com.tedu.dao.UserMapper">
        <resultMap id="userAccountMap" type="user">
            <id column="id1" property="id"/> <!--此处给父表的id起了别名id1-->
            <result column="name" property="name"/>
            <result column="age" property="age"/>
            <result column="address" property="address"/>
            <collection property="accounts" javaType="ArrayList" ofType="Account">
                <id column="id" property="id"/> <!--此处给子表的id起了别名id2-->
                <result column="uid" property="uid"/>
                <result column="money" property="money"/>
            </collection>
        </resultMap>
        
        <select id="findAllUser" resultMap="userAccountMap">
            select 	u.id id1, /*与结果集对应的别名id1*/
            		u.name, u.age, u.address,
            		a.id id2, /*与结果集对应的别名id2*/
            		a.uid, a.money
            from user u
            left join account a
            on u.id = a.uid;
        </select>
    

    这么做就可以解决问题了。

    总结反思

    可能是刚刚工作不久的缘故,也或者是太久没碰后端开发了(刚考研结束),现在的开发基本模式基本都是复制粘贴修改。。。有点惭愧,找到解决方案后发现其实以前都学过这种写法,但是当时没有思考的那么深,很多地方跟着敲一敲就过去了,也没有去想为什么要这么做。。。今天捣鼓这个很简单的问题花了不少时间,实在是惭愧啊!以后工作中的学习还是要更深入,不能简单停留在复制粘贴上(虽然也可以完成大部分任务)。。。

    展开全文
  • 现在有一张 ryclxx 表,根据表中字段 cljd=‘1’ or cljd=‘2’ 查询。 会查询出这样结果,例如: r110221 1 和 r110221 2 这个结果。 我是否可以把 前一列相同 但是cljd不同数据抓出来呢????
  • AB表结构不完成相同,B表有个字段“ID”A表中没有,并且B表有约束ID的值不能重复 请问这样语句怎么写,主要是那个ID字段怎么处理。 select into 和 insert into select 种表复制语句 select * into destTbl ...
  • 开发界面选择动态块,...选择了动态块名后通过其ID可以查询2中的第二、三、四级分类,并且通过1id=1(假设)和字段名含有user字样且字段值不为空来得到参数L,W,THK 从2取得上面得到对应user字...
  • 查询数据是指从数据库中的数据或视图获取所需要数据,在mysql,可以使用SELECT语句来查询数据。根据查询条件不同,数据库系统会找到不同数据。 SELECT语句基本语法格式如下: [sql] view plain copy ...
  • 内连接:两张表中相同含义的字段值相等时才符合连接查询的条件 2.外连接 左外连接:返回左表中所有记录和右表中连接字段相等的记录 右外连接:返回右表中所有记录和左表中连接字段相等的记录 3.交叉连接...
  • 在 Laravel Eloquent 使用 join 关联查询,如果两张表有名称相同的字段,如 id,那么它的会默认被后来的同名字段重写,返回不是期望的结果。例如以下关联查询: PHP $priority = Priority::rightJoin('touch', ...
  • 关联两张数据表的字段查询符合条件的记录时,由于字段的属性是中文,肉眼可见的相同,在计算机看来却是不同的。 任何时候, 数据库服务端总是按照自己的字符集设置完成数据存取的; 数据库客户端是按照本地...
  • 1.首先数据库中存在两张表,用户表User、角色表...3.1:使用SQL语句查询User表与Role表中相同的roleId与输入的匹配,然后将Role表中的字段roleName的记录输出。 3.2:使用Maven创建生成多表文章使用Maven搭建myb.
  • 提示:向两张临时插入测试数据,商品序号是1、2、3,价格序号是1、2、4如上图。 提示:左外连接是显示商品表的所有行,价格符合条件序号是1和2,因为没有3相对应,所以以NULL显示。 提示:右外连接...
  • 01-sql-联合查询

    2020-10-18 21:56:25
    2.查询两张表具有相同的字段 过程 探测网站是否存在注入点 打开网站主页,随便打开一个一条新闻 http://192.168.36.131/cms/show.php?id=33 可以看到URL出现id,改变id,页面出现跳转 http://192.168.36.
  • Oracle_SQL高级查询

    2014-02-28 19:59:07
    内连接 SCOTT示范用户解锁,以下示例使用SCOTT示范用户内的示例 alter user scott account unlock 1、等值连接:关联条件的运算符是...3、自然连接:在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将
  • 查询出来的结果作为一张,在这个上继续作查询,别忘了要给需要使用的字段或者起个别名,例如下面的平均,子。 (3)子查询在having (4)子查询在select 还有另一种写法 二、自连接 这题也...
  • union 和union all区别

    2018-05-22 19:49:25
    union和union all都可以将2个或多个表进行合并,但这些子查询必须具有相同的列,且对应的字段的类型必须一致。union all直接合并,取到表中的所有,没有去重功能;union具有去重功能,取到的每个都是唯一的。...
  • 这时候可以看到id为15数据最后字段的值并不相同   2.执行更新sql语句 3.查看结果 执行完更新操作后,发现id为15这行数据,starttime和endtime字段都发生了改变,而我update语句仅改变en...
  • 3、主键外键

    2019-10-03 06:29:01
    外键:主键是本张表的主键,是唯一且非空的,而外键是另一张表中与这张表的某个字段的类型,字段名相同的字段,一般是用作关联两张两张以上的数据表时用的。 外间的取值规则:空值或参照的主键值。 (1)插入非...
  • SQL删除重复数据方法

    2019-10-04 04:53:01
    1的条件——》提取出了重复的字段值——》最后再根据ID的唯一性——获得重复的数据中的MIN或MAx的ID的值——》最后再在原表中查询出重复的数据即可——》重复的数据可以生成一张新表,然后与不重复数据生成的一张新...
  • 外键约束是保证一个或之间参照完整性,外键是构建于一个表的两字段或是表的两字段之间参照关系。 也就是说从表的外键必须在主中能找到或者为空。 当主表的记录被从参照时,主表的记录将不...
  • 实例1:汉语中的“和”与逻辑运算中的“或” (一楼) ...实例18:用 Union 从字段相同的两个 Access 表中筛选记录后按相似字段排序(第11页102楼) 实例19:用 Union 进行忽略某种数值的汇总(第11页104楼)
  • 唯一的索引意味着个行不能拥有相同的索引 增加查询速度 3.除了加索引还有什么优化数据库的办法? a)创建索引:创建合适的索引,我们就可以现在索引中查询查询到以后直接找对应的记录。 b)分表 :当一张的数据...
  • MySQL命令大全

    2018-01-15 11:19:17
    如果要对用户所用登录终端进行限制,可以更新User表中相应用户Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令: mysql -uroot -p; mysql -uroot -pnewpassword; mysql mydb ...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

查询两张表中相同的字段值