SELECT * FROM alarms where id in (select resource_id from res_products where product=22)这个语句在mysql中为什么不能执行?我的mysql数据库是5.0.27版本的!如果实在不行那么该用个什么语句代替效率更高呢?

解决方案 »

  1.   

    SELECT a.* FROM alarms a inner join res_products b on a.id=b.resource_id
    where b.product=22
      

  2.   

    应该可以执行啊,MYSQL的错误提示是什么?
      

  3.   

    估计是数据量过大的原因,你的SQL执行时间过长。建议你直接在MYSQL中去执行这个语句,这样先避免java的干扰。
      

  4.   

    先试试直接在MYSQL中执行这个语句  
    这个时候能很清楚看到是数据量太大导致查询时间太长 还是因为本来就没数据 
    语句看起来没什么问题 
      

  5.   


    数据量总共才几万条! 需要查询的才几百条! mysql不至于这么点数据都处理不了吧?这个是有数据的! 我上面说到过! 分开执行完全没有问题
      

  6.   

    那你试一下这句呢?select a.* 
    from alarms a inner join res_products b on a.id=b.resource_id
    where b.product=22
      

  7.   

    應該是可以執行的下個GUI,直接執行那個SQL,不通過 server application