使用NULL时重复的Union条目

时间:2014-12-10 21:52:42

标签: mysql null union

我有一个查询,当我在其中一个中使用NULL时,它会重复该行。

基本上当有一个人在长矛上进入时,它会显示所有关于某个老鼠的长矛的最大值。 (leilao = auction,lance = bid)

SELECT lr.lid,l.nome,datediff(date_add(l.dia,INTERVAL lr.nrdias DAY),current_date()) as "Nr dias até o fim",null
from leilao l JOIN leilaor lr  ON (l.dia= lr.dia AND l.nrleilaonodia = lr.nrleilaonodia AND l.nif= lr.nif) 
where date_add(l.dia,INTERVAL lr.nrdias DAY) >= current_date()
group by lid
UNION
SELECT lr.lid,l.nome,datediff(date_add(l.dia,INTERVAL lr.nrdias DAY),current_date()) as "Nr dias até o fim",MAX(la.valor)
from concorrente c JOIN lance la JOIN leilaor lr JOIN leilao l
ON (c.leilao = lr.lid AND la.pessoa = c.pessoa AND la.leilao = c.leilao AND l.nif=lr.nif AND l.dia= lr.dia AND l.nrleilaonodia = lr.nrleilaonodia) 
where date_add(l.dia,INTERVAL lr.nrdias DAY) >= current_date()
group by lid

通过sugestion改为this但它给了我一个错误“每个派生表必须有自己的别名。 选择 * 从(

SELECT lr.lid,l.nome,datediff(date_add(l.dia,INTERVAL lr.nrdias DAY),current_date()) as "Nr dias até o fim",null as "Maxímo lance"
from leilao l NATURAL JOIN leilaor lr  
where date_add(l.dia,INTERVAL lr.nrdias DAY) >= current_date()
group by lr.lid
UNION 
(SELECT lr2.lid,l2.nome,datediff(date_add(l2.dia,INTERVAL lr2.nrdias DAY),current_date()) as "Nr dias até o fim",MAX(la.valor)
from concorrente c JOIN lance la JOIN leilaor lr2 JOIN leilao l2
ON (c.leilao = lr2.lid AND la.pessoa = c.pessoa AND la.leilao = c.leilao AND l2.nif=lr2.nif AND        l2.dia= lr2.dia AND l2.nrleilaonodia = lr2.nrleilaonodia)
where date_add(l2.dia,INTERVAL lr2.nrdias DAY) >= current_date() 
group by lr2.lid) 
)
group by Max(la.valor)

0 个答案:

没有答案