当前位置: 首页 > 图文教程 > 数据库 > 数据库技巧 > 一个多表查询的SQL语句

数据库技巧
一条DELETE语句
SQL SERVER 里的错误处理(try catch)
恢复 SQL 被注入后的数据代码
大数据量时提高分页的效率
数据库命名规范小结
where 子句的执行顺序
当数据库变慢时的解决方法
MYSQL 导入数据的几种不同
用户管理的备份(一致性备份、非一致性备份、脱机备份、联机备份)
多条件查询的程序
[原创]access mysql mssql 随机 10条数据的sql语句
Sybase 复制与热切换数据
Sql Server、Access数据排名的实现方法(例如:成绩排名)
sqlserver和oracle中对datetime进行条件查询的一点区别小结
在SQL Server和Oracle中创建job
Linux下 mysql oracle 简单使用手册
sql小计汇总 rollup用法实例分析
连续序号的 sql语句
SQLServer与Access常用SQL函数区别
JDBC 数据库常用连接 链接字符串

数据库技巧 中的 一个多表查询的SQL语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 110 ::
收藏到网摘: n/a

有 表1:如下内容 表2: 如下内容
id info id value
1 a 1 10
2 b 2 30
3 c
4 d
想得到
id value
1 10 //表2中存在
2 20 //表2中存在
3 0 //表2中不存在
4 0 //表2中不存在
是否可以使用一条sql语句来解决,而不必先从表1中得到id,再在表2中查找是否有该条记录,如果有就直接读取出来,没有则赋值为0
复制代码 代码如下:

select 表1.id,isnull(value,0) from 表1
left join 表2
on 表1.id=表2.id


复制代码 代码如下:

select a.id,isnull(b.value,0) from 表1 a
left join 表2 b
on a.id=b.id