SELECT
custom_name,
think_houses.houses_name,
(SELECT custom_status_status FROM think_custom_status WHERE custom_custom_id=custom_id ORDER BY custom_status_status DESC LIMIT 0,1) as custom_status
FROM
think_custom
INNER JOIN think_houses ON think_custom.houses_houses_id = think_houses.houses_id
WHERE
`borker_borker_id` = '4'
LIMIT 0,
1
说下 我这个表要干啥。。
一个经纪人表
取出 经纪人对应的客户列表 然后 每个客户的状态 与 客户的发生状态的时间 (存于 custom_status表)
然后还有个筛选功能 客户状态为 4 的所有。。。。
我感觉一个sql语句实现不了把! 我是编了好半天
原谅我的低基础。。。
1
cover 2015-04-28 17:22:35 +08:00
虽然没有看懂,但是好像很厉害的样子。。
没有详细的表结构 也看不出啥,反正先想办法把正确的数据select出来,然后在优化sql语句把。。(比如左右连接) 我看你的需求好像意思就是 select custom_status ,custom_id,custom_staus_time from custom_status where broker_id = brokerId and custom_status = 4 ? |
2
m939594960 OP @cover 感谢你回答! 刚刚脑子没转过来 现在已经大概实现了!!!
|
3
asj 2015-04-28 17:31:16 +08:00
你可能需要描述一下custom_status表里的数据。
是不是一个custom对应多条status记录,分别记录不同时间点的状态? 还是status里只是记录custom当前的状态,如果这样的话非常简单,三张表join一下就行了 |
4
mcfog 2015-04-28 17:34:41 +08:00
join 子查询什么的,用超过2个只能说明要么表设计不合适了,要么该冗余一份数据了
(定时出报表等情况除外) |
5
staticor 2015-04-28 18:09:40 +08:00
selectc customer, broker, datetime, status
from ( select broker, broker_id from b_table natural left join ( select broker_id, c_id, customer, datetime, status from cus_table ) where status = 4 ??? |
6
m939594960 OP @asj custom_status为用户状态表
custom对应多条status记录,分别记录不同时间点的状态? 是这样的!! |
7
m939594960 OP @mcfog 效率啥的离我还有点远。。 主要实现功能
这个是一个房产经纪人的产品 这个是一个交易列表需要调用的sql 列表主要包含信息 楼盘名称 (我放到一个表里) 经纪人名称 (我放到一个表里) 交易现在状态(我放到一个表) 最后状态时间 (我放到交易现在状态表。) 这个表结构 应该如何优化? 放到一个表里? 在状态改变的时候往主表里写? 谢谢你了! |
8
m939594960 OP @mcfog 怎么样去实现是最好的办法?
|
9
iamdbc 2015-04-28 19:22:03 +08:00
把你需要联查的数据冗余到现在的表里。
或者如果经纪人id不是很多,可以判断出来多少个的话,把经纪人id取出来,在关联表里where in。 一个SQL实现不了就拆开,不然数据大了,联查就是噩梦。 |
10
m939594960 OP @amdbc 嗯谢谢 !
|
11
lujiajing1126 2015-04-28 19:36:27 +08:00
三个模型,交易,楼盘,经纪人
交易hasOne楼盘,hasOne经纪人,包括交易现在的状态。。。 取一个交易。。然后就能取出经纪人和楼盘和现在的状态啊= =。。用ORM关联就好了哈哈哈哈 也就3条SQL,主键和索引查询要快得多 |
12
mqzhang 2015-04-28 19:44:26 +08:00 via Android
什么数据库? 目测需要window函数
|
13
m939594960 OP |
14
rqrq 2015-04-28 22:26:24 +08:00
页面是怎么显示这些数据的?
|
15
whatisnew 2015-04-28 22:36:36 +08:00
EXPLAIN
|
16
m939594960 OP |
17
msg7086 2015-04-29 08:46:54 +08:00
@m939594960 如果你的程序和数据库在一台机器上,并且查询结果的量不大,那么多数是分开查询效率更高一些。
|