MySQL QUERY在localhost上运行,但不在服务器上运行

时间:2014-01-07 22:24:24

标签: mysql localhost

我有QUERY

select 
    a.* 
from 
    mt_proyecto a,
    mt_mockup b,
    mt_diseno c,
    mt_modulo d
where
    a.estado = 'A'  and
    (
        (b.encargado = '1' and b.idproyecto = a.idmtproyecto) or
        (c.encargado = '1' and c.idproyecto = a.idmtproyecto) or
        (d.encargado = '1' and d.idproyecto = a.idmtproyecto)
    )
group by
    a.idmtproyecto

order by a.finalizado asc, a.feccrea desc

结果:

enter image description here

然后,我在服务器上使用相同的数据库运行相同的代码:

enter image description here

query是否有任何问题?

2 个答案:

答案 0 :(得分:0)

似乎查询在您的服务器上正常运行,并且没有返回任何行。请确保您在本地计算机和服务器上具有相同的表格内容。

其他事项:

专业提示:绝不要在软件中使用SELECT *SELECT table.*。始终枚举结果集中所需的列。

除非您将GROUP BYSUM()或`COUNT()等聚合函数一起使用,并从结果集中命名正确的列,否则会返回不可预测的结果。读这个。 http://dev.mysql.com/doc/refman/5.1/en/group-by-extensions.html

答案 1 :(得分:0)

我用这个QUERY

解决了
select
    a.*
from
(
    mt_proyecto a
    left join mt_mockup b on
    b.idproyecto = a.idmtproyecto
    left join mt_diseno c on
    c.idproyecto = a.idmtproyecto
    left join mt_modulo d on
    d.idproyecto = a.idmtproyecto
    left join mt_integracion e on
    e.idproyecto = a.idmtproyecto
    left join mt_pruebas_internas f on
    f.idproyecto = a.idmtproyecto
)
where
    a.estado = 'A' and 
    (
        (a.idmtproyecto = b.idproyecto and
         b.encargado = '1' ) or
        (a.idmtproyecto = c.idproyecto and
         c.encargado = '1' ) or
        (a.idmtproyecto = d.idproyecto and
         d.encargado = '1' ) or
        (a.idmtproyecto = e.idproyecto and
         e.encargado = '1' ) or
        (a.idmtproyecto = f.idproyecto =
         f.encargado = '1' )
    )

group by a.idmtproyecto

order by
    a.finalizado asc, a.feccrea desc

谢谢大家回答我。我会做你的建议。