我想使用1个表来使用2组查询创建新表。
测试代码:http://sqlfiddle.com/#!9/02e3ff/5
他们共享相同的order_id。
type = A,updated_at = pDate
type = B,updated_at = dDate
select t.order_id, t.updated_at as pDate, weekday(t.updated_at) from transactions t
where t.type = 'A' group by t.order_id
select t.order_id, max(t.updated_at) as dDate, weekday(max(t.updated_at)) from transactions t
where t.type= 'B'
group by t.order_id;
对于type = A,我想获得最早的 updated_at 日期,而对于type = B,我想获得最新的 updated_at 日期。
目前,我尝试过联盟,但是他们给了我2行而不是所需的表。
如何加入或合并这两个查询以获取所需的表?
或者,有没有更好的方法来做到这一点?谢谢!
答案 0 :(得分:2)
您可以尝试这样的事情:
SELECT order_id, min(pDate) pDate, max(dDate) dDate FROM(
SELECT
order_id,
if(type='A',updated_at,null) pDate,
if(type='B',updated_at,null) dDate
FROM transactions
) as d
GROUP BY order_id