一个left join 一个right join然后union?有点复杂。。 select t1.user_id user_id, t1.money A_money, t2.money B_money from  (select user_id, money from test1 where item_id=1) t1 left join  (select user_id, money from test1 where item_id=2) t2 on t1.user_id = t2.user_id union select t2.user_id user_id, t1.money A_money, t2.money B_money from  (select user_id, money from test1 where item_id=1) t1 right join  (select user_id, money from test1 where item_id=2) t2 on t1.user_id = t2.user_id