sql别名,查询排序,左连接查询,去重复数据
sql别名,查询排序,左连接查询,去重复数据
1,sql别名⽤法。
⼀个表⾥⾯的字段起别名,
SELECT* FROM d_unit
这个是在单位表⾥⾯查询出单位的所有信息,当然也可以查询某⼀个字段。
例如查询单位表⾥⾯的单位名称和id。
SELECT unitId, unitname FROM d_unit
如何开启字段别名;unitId 的别名是id,单位名称的别名是 text,
SELECT unitId id,unitname text FROM d_unit。
查询结果就是如下⾯图⽚⼀样。
然后就是连表起别名,多表连接,如果表的名称⽐较长,别名可以减少sql语句的代码量,和sql语句看起来会⽐较整洁⼀点,但是有时候新⼿会弄混,写的时候很容易写错误。
下⾯例⼦是全连接,连表查询;
SELECT d_cominformation.*,d_comtypedetailsnameddetails FROM d_cominformation
INNER JOIN d_comtypedetails on d_cominformationtypedetailsId = d_comtypedetailstypedetailsId
开启别名,开启别名后字段会看起来表的名称⽐较变整洁⼀点,只需要在表的前⾯起⼀个⾃⼰⾃定义的名称就可以了。distinct查询
SELECT cm.*,dcnameddetails FROM d_cominformation cm
INNER JOIN d_comtypedetails dc on cmtypedetailsId = dctypedetailsId
2,查询排序
有时候需要查询数据排在第⼀位;然后可以⽤ORDER BY和DESC配合使⽤;
ORDER BY 语句⽤于根据指定的列对结果集进⾏排序。ORDER BY 语句默认按照升序对记录进⾏排序。如果需要按照降序对记录进⾏排序,可以使⽤ DESC 关键字。例如
查询⼀个默认仓库,把默认仓库的那⼀条数据排序在最前⾯,defaubit是默认仓库。
我们需要使⽤降序对记录进⾏排序,
select * from d_warehouse
ORDER BY  defaubit DESC
还有ORDER BY升序对记录进⾏排序, 就是和上⾯的结果相反
select * from d_warehouse
ORDER BY  defaubit
还有查询表⾥⾯的最后⼀条数据,即如果你需要的回填新增完成之后的最后⼀条数据,或者别的情况⽐如编号查询,然后⾃递增,查询进货明细表⾥⾯的最后⼀条数据。
select  d_purchasdetail.*,d_purchasing.purchasingId from d_purchasdetail
left join d_purchasing on d_purchasing.purchasingId = d_purchasdetail.purchasingId
order by purchasDetailid desc limit 0,1
然后还有新增之后返回id
3,左连接查询
这个左查询⽤到别名,上⾯⽤写到别名。LEFT JOIN 关键字会从左表 (table_name1) 那⾥返回所有的⾏,即使在右表 (table_name2) 中没有匹配的⾏。
SELECT pd.*, pi.*,op.username FROM d_purchasdetail pd
LEFT JOIN d_purchasing  pi on  pi.purchasingId = pd.purchasingId
LEFT JOIN s_operator op on  op.operatorId = pi.operatorId
4,去重复数据
使⽤Distinct和ORDER BY排序去重复;
Distinct去重复,distinct必须放在开头, distinct是单表使⽤的。
SELECT distinct comInformationId FROM d_purchasdetail //作⽤于多列
查询purchasdetail明细表distinct关键字去comInformationId商品id的重复字段
SELECT distinct unitId, comtypedetailsId FROM d_cominformation ;//作⽤于多字段
查询商品表distinct关键字去单位id和商品类别id的重复,
左连接查询,使⽤ORDER BY排序去重复;可以多表使⽤,也可以单表使⽤。
查询进货明细表,左连接进货表好商品信息表。上⾯是多表的模型关系。
select pd.purchasDetailid,pi.purchasingId,cm.*  from d_purchasdetail pd
left join d_purchasing pi on pi.purchasingId = pd.purchasingId
left join d_cominformation cm on cmInformationId = pdInformationId
group by pdInformationId,pi.suppliersId
order by pd.purchasDetailid
去掉商品id和供货商id重复的数据,供货商id在进货表⾥⾯。上⾯是多表连接排序去重复
还有单表去重复
SELECT * FROM d_purchasdetail  GROUP BY comInformationId
查询purchasdetail 明细表GROUP BY关键字去comInformationId商品id重复。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。