sql多表联查语句怎么写 最好能举例说明 有哪些方法可以实现,我这个小虾米不懂,希望各位大虾能给予指导
比如说要查3个表中的某些字段,3张表一个是财务表,一个是商品表,一个是消费流水表(每消费一次都会给表中添加一条数据)但是要查询的余额与其他两张表无关,消费流水表引用商品表...
比如说 要查3个表中的某些字段,3张表一个是财务表,一个是商品表,一个是消费流水表(每消费一次都会给表中添加一条数据) 但是 要查询的余额与其他两张表无关,消费流水表引用商品表,要查的是 商品名称,消费金额,现在的余额,如果本热说的不够详细的话,可以Hi我
展开
1个回答
展开全部
你要说下你的表跟要查询数据的相关的几个关键字段。比如:
商品表:商品编号、商品名称
消费流水:商品编号、消费金额、扣款账户
财务:账户编号、余额
多表查询的样子大概是这样的:
select 字段1,字段2... from 表1 [left|right] join 表2 on 表1.关联字段=表2.关联字段 where
left join 表示取左边表所有满足条件的记录,不管表2是否有对应的记录,right相反。忽略则只返回两个表都有对应记录的那些记录。连接多个表可以加多个 JOIN 子句,在 where 之前插入即可。
你这是要查询单个商品的消费总计呢,还是查询流水并显示每次消费后的余额。前者跟余额好像没什么直接关系(还是我理解错误了?),后者可不是一两句能解决的。
商品表:商品编号、商品名称
消费流水:商品编号、消费金额、扣款账户
财务:账户编号、余额
多表查询的样子大概是这样的:
select 字段1,字段2... from 表1 [left|right] join 表2 on 表1.关联字段=表2.关联字段 where
left join 表示取左边表所有满足条件的记录,不管表2是否有对应的记录,right相反。忽略则只返回两个表都有对应记录的那些记录。连接多个表可以加多个 JOIN 子句,在 where 之前插入即可。
你这是要查询单个商品的消费总计呢,还是查询流水并显示每次消费后的余额。前者跟余额好像没什么直接关系(还是我理解错误了?),后者可不是一两句能解决的。
更多追问追答
追问
消费流水表中的数据肯定是消费的,余额也就是每次消费后所剩的余额
select t_goods.g_name,fn_pay,tradetype,lastAmount,fn_date from t_financenotic right join t_Goods right join t_finance where t_finance.uc_id = t_financenotic.uc_id
可以这么写么 ?
追答
余额应该是某个账户的余额吧,流水表应该有个账户编号,不然怎么知道扣除的是那个账户的钱?我问的是你要的结果是总计呢还是清单?我觉得不管哪个,跟余额并没有直接的关系。要显示每次消费后的余额就要以当前的余额往前推,这显然不是一次查询能出来的。
JOIN子句包括on,也就是说要指出两张表通过哪个字段关联。
select 字段1,字段2... from 表1 [left|right] join 表2 on 表1.关联字段=表2.关联字段 [left|right] join 表3 on 表1.关联字段=表3.关联字段
where
另外注意多表查询的时候,字段1,字段2 要加上表的名字(当然如果你多个表的字段名称都不同的话不写也没问题,不过加上会更容易读懂)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询