输出错误的MYSQL查询问题

时间:2016-07-28 13:29:07

标签: mysql

大家好我有以下问题:

$query = "SELECT DISTINCT registration, series, operator, msn, ln, model, status, pic, piccopy FROM (SELECT * FROM (SELECT * FROM history where status = 'active' ORDER BY date asc) AS a GROUP BY ln) a2 GROUP BY msn ORDER BY ln asc";

这种作品 - 有点......见here

目前列出了已经或当前处于活动状态的所有机身。我需要它才能列出当前活跃的机身。这是因为机身被报废或放入博物馆 - 例如它被归类为不再有效 - 例如保留,对于可能被废弃的那些保留,但上述查询仍将其视为活动状态。我该怎么做以防止这显示可能属于以下类别之一的飞机:

  • 接地
  • 报废
  • 分开
  • 注销
  • 丢失
  • 存储
  • 保留
然而,接地/存储/保留的机身可以返回服务并再次变为活动状态,因此它需要找到最新的“活动”并且仅在该日期之后未被撤销时才显示。

我猜它的东西很简单,它抓住某个机体的记录,例如ET-AOP,并选择最后一个(最新的日期,也称为最新日期),看它是否有效,如果有,则显示它,如果没有那么它不会。但是我该如何做到这一点,这让我很精神

2 个答案:

答案 0 :(得分:0)

由于我们没有你的桌面计划,我写这是我最好的猜测。

这是您的历史记录表:

history_id
plane_id 
status (active, grounded, missing etc.)

选择“有效”作为最新状态的飞机:

select plane_id from history 
 where history_id in (
  select max(history_id) from history group by plane_id
  )
 and status = 'active'

答案 1 :(得分:0)

由于我们没有你的桌面计划,我写这是我最好的猜测。

这是您的历史记录表:

history_id plane_id 状态(活动,接地,丢失等) 选择“有效”作为最新状态的飞机:

从历史记录中选择plane_id  其中history_id in(   通过plane_id从历史记录组中选择max(history_id)   )  和status ='有效'

相关问题