解决方案 »

  1.   

    你的SQL语句是什么
    D表结构需要修改
      

  2.   

    表结构已经无法改变了,只能是从现有的表结构上面做文章了。
    我目前用的方法是查询A、B表联合查询,然后得出结果集,
    遍历这个结果集的时候,再去查询C表里面的数据,但是我总觉得这不科学,并且速度不是很快,
    所以想寻找更好的方法
      

  3.   

    需求1:
    查询出A表中数据,同时满足下面条件,是同时满足下面几个条件
    1.B表(发车班期表)中符合当前时间的记录
    2.C表(价格表)中满足当前时间,并且价格大于0元
    3.D表(显示位置表)中2 = 1,3 = 1
    4.A表中的记录要过滤掉name相同的
    ----------------------------需求1 
    SELECT NAME,STATE DELETESTATE  FROM A
    WHERE ID IN(
    SELECT a表_id FROM C WHERE  start_time>=GETDATE() AND end_time <=GETDATE()
    AND PRICE >0
    AND a表_id IN(SELECT a表_id FROM D WHERE   2=1 AND   3=1)--表A name 加索引--表C a表_id 加索引   
    start_time end_time   这两个建一个索引  
    price 建一个索引
     
    --表D a表_id加索引 
     2 3 这两个字段加索引
    ------------------------------------- 表A 1个索引 表C 3个  表D 2个需求2 为啥要三个表中的所有数据?
    你这个已经是重复存放数据了 只取部分数据就可以了这样建索引 需求2 也会快点  你可以试试 
    如果还慢 我也没办法了
      

  4.   

    建议楼主多看看关于mysql查询的知识