这是第一个查询
SELECT DISTINCT u.email, lastorder, datediff(curdate(),lastorder),
CASE WHEN datediff(curdate(),lastorder)<=29 then "<=29"
WHEN datediff(curdate(),lastorder)<=43 then "<=43"
WHEN datediff(curdate(),lastorder)<=60 then "<=60"
WHEN datediff(curdate(),lastorder)<=92 then "<=92"
WHEN datediff(curdate(),lastorder)<=100 then "<=100"
else ">100" end as dayssincelastorder
FROM pedidos_onlines as po
LEFT JOIN establecimientos as e ON `po`.`establecimiento_id`= e.id
LEFT JOIN usuarios as u ON po.usuario_id=u.id
LEFT JOIN ciudades as c on c.id=e.ciudad_id
LEFT JOIN (SELECT usuarios.email, MAX(fecha) as lastorder
FROM pedidos_onlines
LEFT JOIN usuarios
ON pedidos_onlines.usuario_id=usuarios.id
group by usuarios.email) lastorder ON u.email=lastorder.email
WHERE (e.nombre or e.ciudad_id IS NOT NULL)and u.email is not null
ORDER BY datediff(curdate(),lastorder) ASC
这是第二个
SELECT usuarios.email, AVG(pedidos_onlines.total),
CASE WHEN p.nombre like '%colombia%' and AVG(pedidos_onlines.total) <34873 then 'A'
WHEN p.nombre like '%colombia%' and AVG(pedidos_onlines.total) >= 52309 then 'B'
WHEN p.nombre like '%colombia%' THEN 'C'
WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) <41 then 'A'
WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) >= 62 then 'B'
WHEN p.nombre like '%peru%' THEN 'C'
WHEN p.nombre like '%ecuador%' and AVG(pedidos_onlines.total) <13 then 'A'
WHEN p.nombre like '%ecuador%' and AVG(pedidos_onlines.total) >= 19 then 'B'
WHEN p.nombre like '%ecuador%' THEN 'C'
else ""
end as Segment, p.nombre as country
FROM pedidos_onlines
LEFT JOIN usuarios ON usuarios.id=pedidos_onlines.usuario_id
LEFT JOIN ciudades as c on c.id=pedidos_onlines.ciudad_id
LEFT JOIN paises as p on p.id=c.pais_id
WHERE usuarios.email IS NOT NULL
GROUP BY usuarios.email, p.nombre
不太确定如何将它们放在一起,所有的帮助表示赞赏
答案 0 :(得分:0)
使用UNION - 请参阅https://dev.mysql.com/doc/refman/5.0/en/union.html
确保两个SELECT具有相同的列数。