sql-SQL join 多表关联问题

问题描述

SQL join 多表关联问题
table:log_create_player
player_id uid created_time
1 11 121221
2 22 121212
table:log_login
player_id action_time
1 22323
1 33434
table:payment
pay_user_id pay_amount exchage
22 33 0.333

想得到
player_id max(action_time) times doll
1 33434 2 9.999

SQL语句:
DB::connection($this->db_name)->select(""select lcp.player_idlcp.player_namefrom_unixtime(created_time)from_unixtime(max(action_time))count(1) as times sum(o.pay_amount*o.exchange) from log_create_player lcp join log_login ll on lcp.player_id=ll.player_id left join {$this->db_payment}.pay_order o on lcp.uid = o.pay_user_id where created_time between {$start_time} and {$end_time} and o.get_payment = 1 group by player_id having max(action_time)<{$interval}"");

为什么最后的出来的是空????

解决方案

http://blog.csdn.net/dxnn520/article/details/8281467

解决方案二:
SQL学习笔记-join问题求解释.

时间: 2024-07-28 13:18:17

sql-SQL join 多表关联问题的相关文章

Oracle\MS SQL Server Update多表关联更新

原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表   一.MS    SQL    Server   多表关联更新      sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就

【SQL】在SQL Server中多表关联查询问题

好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据   失败的案例如下: SELECT cyb.id,ad.name FROM [GeneShop].[dbo].[t_member_cyb] cyb ,[GeneShop].[dbo].xx_admin ad,[GeneShop].[dbo].t_bg bg where cyb.hzjg_id = ad.id and cyb.id = bg.cyb_id and (cyb.cyb

SQL INNER JOIN两表联合查询用法

INNER JOIN(等值连接) 只返回两个表中联结字段相等的行 在表中存在至少一个匹配时,INNER JOIN 关键字返回行. INNER JOIN 关键字语法  代码如下 复制代码 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:INNER JOIN 与 JOIN 是相同的. LEFT JOIN(左联接) 返回

SQL LEFT JOIN 关键字教程

SQL LEFT JOIN 关键字教程 LEFT JOIN的关键字返回所有行从左边的表( table_name1 ) ,即使没有比赛的权利表( table_name2 ) . 左加入的SQL语法 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name 好了我们来看看left join的例子如何? Id LastName First

SQL update 多表关联更新的实现代码

实现多表更新,尤其是A表和A的子表B表数据更新,下面是例子 有A.B张表,其记录如下: A表 c1       c2 -------------- 1       a1 2       a2 3       a3 8       a8 B表 c1       c3 -------------- 1        b1 2        b1 3        b3 10      b10 A.c1与B.c1相等,用一条sql语句,实现A.c2的值更新为B.c3 -----------------

sql 统计 重复-请问使用子表和父表关联,sum统计时如何不让父表字段重复统计

问题描述 请问使用子表和父表关联,sum统计时如何不让父表字段重复统计 select sum(parent.value) --统计时重复了 ,sum(child.value) ... from parent left join child house on child.parent_id = parent.id where .... 这里sum(parent.value)统计重复了 解决方案 加上distinct select sum(distinct parent.value) 解决方案二:

MySQL千万级多表关联SQL语句调优

本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使千万级表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果).   需要优化的查询:使用explain      出现了Using temporary:      有分页时出现了Using filesort则表示使用不了索引,需要根据下面的技巧来调整语句      rows过多,或者几乎是全表的记录数:      key 是 (NULL):      possible_keys 出现过多(

sql-关于SQL多表关联的问题

问题描述 关于SQL多表关联的问题 我想知道多表关联在什么情况下会出现取出的行变多的情况? 就是在多表关联之后,什么情况下select出来的结果会比你本来希望查询到的结果多? 谢谢. 解决方案 SQL多表关联求和问题 解决方案二: 那要看你的查询条件是不是超过了你的期望,同时用内连接,而不是left join等 解决方案三: 关于你想知道的情况,你可以查询一下 "笛卡尔乘积".笛卡尔乘积就会导致取出的数据比我们需要的数据多的问题. 我们在表查询的时候,要注意避免出现笛卡尔乘积. 使用交

sql-oracle 实现多表关联SQL脚本

问题描述 oracle 实现多表关联SQL脚本 A表: XH IDA NAME AGE 1 1 张三 20 2 2 李四 18 3 3 王五 19 4 4 lily 19 B表 XH IDB IDA 1 1 1 2 2 1 3 3 1 4 4 3 5 5 3 6 6 4 7 7 4 C表 XH IDC IDB 1 1 1 2 1 2 3 1 3 4 2 6 5 2 7 A表的IDA与B表的IDA有关系,B表的IDB与C表的IDB有关系 实现效果: XH IDA NAME AGE IDB IDC