create view v_test
as
select a.billno,sum(b.num) as AllNum,sum(b.num*b.price) as AllSum
from mastertable a left join detailtable b
on a.billno=b.billno
group by a.billno
go
as
select a.billno,sum(b.num) as AllNum,sum(b.num*b.price) as AllSum
from mastertable a left join detailtable b
on a.billno=b.billno
group by a.billno
go
解决方案 »
- 求个sql 谢谢大家
- 请问如何实现 用 t-sql 语句 插入 "000001" 至 "999999" 的 字符串???????????急!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 求仓库管理一条SELECT 语句(有关库存的)
- 简单的查询语句
- 怎么获取角色列表?
- 将照片从数据库读出来出错怎么办?帮助解决一下
- 断电引起的数据库错误
- 存储过程解题???
- 为什么我用的sql总是每天都要断开连接?
- 将access数据库转换成sql后用sqloledb重新建立连接后提示:Microsoft OLE DB Provider for SQL Server 错误 '80004005' 用户 'sa' 登录失
- 在线等,非常急,关于如何删除sysobjects中的记录,因为有一个表。。。。。。
- 简单的..select..问题
as
select a.billno,sum(b.num) as AllNum,sum(b.num*b.price) as AllSum
from mastertable a left join detailtable b
on a.billno=b.billno
group by a.billno
go
as
select a.billno,sum(b.num) as AllNum,sum(b.num*b.price) as AllSum
from mastertable a Inner join detailtable b
on a.billno=b.billno
group by a.billno
书上说的:
内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。外联接。外联接可以是左向外联接、右向外联接或完整外部联接。
在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。FULL JOIN 或 FULL OUTER JOIN。
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。交叉联接。
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积
其实就是:
TableName1 LEFT JOIN TableName2 on ........
就是 ,TableName1 中全部的记录去匹配TableName2 中的记录
TableName1 RIGHT JOIN TableName2 on ........
就是 ,TableName2 中全部的记录去匹配TableName1 中的记录tablename1 : id name
1 a
2 b
3 ctablename2 :
tid Tel
1 3570388select TableName1.id,TableName1.name,TableName2.tel from TableName1 LEFT JOIN TableName2 on TableName1.id=TableName2.tid
id name tel
1 a 3570388
2 b null
3 c null