取得left join的第二表中符合条件的第一条记录

问题描述

有表一 tableA

tid     username     title

1         lily       我公司将进行xx培训

2        angus      关于秋游的通知

3        boss       这个月不发奖金

4        vivi       新产品上市

表二 tableB

tid      time     txt

1        0809    大家快来。。。。

2        0810    我是新来的,大家好

2        0810    我知道你是新来的。。。

4        0811    价格太贵啦。。。

我想取得相同tid下的tableA的title跟对应的tableB中符合条件的第一条txt记录结合起来使用

注意:上面的tableB中有两条tid为2的记录,那么按我的要求只有前一条被提取。

大神操作:

select   a.*,
         ifnull(b.time,‘‘)  as time,
         ifnull(b.txt,‘‘)   as txt
from     tableA as a
         left join tableB as b
           on a.tid = b.tid
group by a.tid
order by a.tid

查询结果:

tid username            title                   time          txt

1        lily       我公司将进行xx培训       0809     大家快来。。。。

2      angus         关于秋游的通知        0810  我是新来的,大家好

3      boss         这个月不发奖金

4       vivi            新产品上市              0811     价格太贵啦。。。

原博客地址:http://bbs.csdn.net/topics/270042408

时间: 2024-10-06 17:51:02

取得left join的第二表中符合条件的第一条记录的相关文章

mysql随机查询符合条件的几条记录

随机查询,方法可以有很多种.比如,查询出所有记录,然后随机从列表中取n条记录.使用程序便可实现.可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数据库.但是效率毕竟没有数据库中直接查询得快.下面介绍mysql中怎样随机查询n条记录. 1.最简单的办法order by rand(),示例 select * from question q where q.`level`=1 order by rand() limit 1; 此写法,可以将查询出的

mysql判断表中符合条件的记录是否存在

IF EXISTS( SELECT 1 FROM T_BD_BuildGroupBaseInfo WHERE F_BuildGroupID=P_StructureId LIMIT 1) THEN SET V_isBuildingGroup=1; ELSE SET V_isBuildingGroup=0; END IF; 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行所影响的行数不是0就是1,性能提高了不少.

exp导出一个表中符合查询条件的数据

原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50000这个条件中的数据exp charsi/[email protected] tables=(TEST) query="'where object_id>50000'" file=aaa.dmp log=aaa.log 其他参数含义:GRANTS:指定是否导出对象的授权信息,默认参

《Linux学习并不难》Linux常用操作命令(14):grep命令查找文件中符合条件的字符串

8.14  <Linux学习并不难>Linux常用操作命令(14):grep命令查找文件中符合条件的字符串 使用grep命令可以查找文件内符合条件的字符串.          命令语法: grep [选项] [查找模式] [文件] 命令中各选项的含义如表所示. 选项 选项含义 -E 模式是一个可扩展的正则表达式 -F 模式是一组由断行符分隔的定长字符串 -P 模式是一个Perl正则表达式 -b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 -c 只显示匹配行的数量 -i 比较时不

Oracle-left join两表关联只取B表匹配到的第一条记录

背景:  A表.B表两表关联,关联出来的结果里B表有不止一条,需求是只要B表结果中的某一条(按某字段排序) 经过百度,发现 row_number() over(partition by a order by b desc)函数可用(需要说明下,order by 必须有缺少会报错),以下是数据环境及结果. 创建数据环境 create table A(ANAME varchar(20)); insert into A values('alan'); insert into A values('Ale

两个表联合查询获取聊天表中用户最新的一条聊天数据

一个用户表,一个聊天记录表,两个表联合查询获取聊天表中用户最新的一条聊天数据 select c.contentfrom sixin as c where c.tid = a.user_idorder by ctime desc limit 0,1) as content,(select c.statusfrom sixin as c where c.tid = a.user_idorder by ctime desc limit 0,1) as status from users as a, s

css样式表中设置table的第一列的宽度是固定值

table{table-layout:fixed;}table tr td:first-child,table tr td:first-child{width:120px;} 首行第一个td定宽同列的宽度都会和他一样. *注意 第一行 第一个用的是 td 还是 th css样式表中设置table的第一列的宽度是固定值,布布扣,bubuko.com

用C#通过正则表达式截取字符串中符合条件的子字符串

仅仅作为简单的记录,不多说直接上代码(仅测试使用): private void Test() { Regex ConnoteA = new Regex("^[a-zA-Z]\\d{8}$"); Regex ConnoteAA = new Regex("^[a-zA-Z]{2}\\d{7,10}$"); Regex ConnoteAAA = new Regex("^[a-zA-Z]{3}\\d{5,9}$"); Regex ConnoteAAAA

linq中分组查询而且获取每个分组中的第一条记录,数据用于分页绑定

LINQ分组取出第一条数据 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: Id=2, Name="Test2" 以上list如果直接使用distinct方法进行过滤,仍然返回3条数据,而需要的结果是2条数据.下面给出解这个问题的方法: 方法1: Distinct 方法中使用的相等比较器.这个比较器需要重写Equals和GetHashCode方法,个人不推荐,感觉较