我如何加入2个查询?

时间:2015-06-04 13:21:30

标签: mysql sql

select a.nume_echipament,
       a.producator,
       a.seria,
       b.uc,
       b.port ,

          a.durata_aprovizionare as durata_aprovizionare,
      ( SELECT  sec_to_time(count(starea)*5) from echipamente inner join
aprovizionari on 
echipamente.nume_echipament=aprovizionari.nume_echipament 
where
(
echipamente.ora>aprovizionari.ora_aprov
and
echipamente.data>aprovizionari.data_aprov)
and starea='1'
and
 echipamente.nume_echipament='automat_imbuteliere') as durata_functionare,
       a.durata_viata as durata_viata,
      ( select data_aprov from aprovizionari where nume_echipament='automat_imbuteliere' order by date(data_aprov) desc, time(ora_aprov) desc limit 1) as data_aprov,
      ( select ora_aprov from aprovizionari where nume_echipament='automat_imbuteliere' order by date(data_aprov) desc, time(ora_aprov) desc limit 1) as ora_aprov,
      (select sec_to_time(count(starea)*5)) as durata_totala 

       from date_tehnice a
       inner join echipamente b on a.nume_echipament=b.nume_echipament
       inner join aprovizionari c on c.nume_echipament=a.nume_echipament
       where a.nume_echipament='automat_imbuteliere'
       and
       b.starea='1';

以上查询工作完全正常,但我还需要从此查询中获取结果

select `starea` from echipamente where nume_echipament='automat_imbuteliere' order by data desc, ora desc limit 1 ;

正如您在第一个查询中看到的那样,它仅依赖于b.starea =' 1',而第二个查询需要获得' starea'的最新值。 ' starea'只有0和1的值。那么,我如何将这2个查询合并为1个查询,以获得' starea'的最后一个值?

1 个答案:

答案 0 :(得分:0)

要使第二个查询拥有自己的行,那么UNION就像这样使用所需数量的空列来匹配第一个查询中的列数。

UNION
select 
(select `starea` from echipamente where nume_echipament='automat_imbuteliere' order by data desc, ora desc limit 1 )
, null
, null
, null 
, null 
, null