a表中有主健列id,一列数据num、和商品名称列,
b表中有一列数据单价price,商品名称,
现在想要的数据是商品名称,总销售额
查询语句:
select t1.goodname,sum(t1. num*t2.price)
from a as t1
inner join b as.t2
on t1.goosname=t2.goodsname
group by t1.goodsname
左右连接其实就是以哪个表为主(或者说为准),结果集为“主表”的全部记录+“副表”与“主表”相匹配的记录,如果“副表”中没有和“主表”相匹配的记录,则相对应的记录显示为NULL
左连接:左边表全部行+右边表相匹配的行,如果左边表中的某一行,在右边表中没有匹配的行,则显示NULL(left join 或者left outer join)
右连接:和左连接相反。(right join 或者right outer join)
内连接:它返回字段ID(连接条件)同时存在于两个表中的记录,也就是说,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行,内联接消除与另一个表中的任何行不匹配的行。(inner join或者join)
全连接:不管匹配不匹配,全部都显示出来。(full join或者full outer join)
交叉连接:没有WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(cross join不带where)
自连接:给自己取个别名,一个表当两个表来使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)