Для ваших целей, я думаю, group by
/ union all
- лучший подход:
select (@rn := @rn + 1) as id, userid, date_t, game, hdigit,
max(inside) as inside, max(outside) as outside
from ((select userid, date_t, game, hdigit, inside, null as outside
from table1
) union all
(select userid, date_t, game, hdigit, null, outside
from table2
)
) t cross join
(select @rn := 0) params
group by userid, date_t, game, hdigit;
Причина, по которой вы не хотите full join
, заключается в том, что вы хотите получить одну строку длякомбинация из четырех клавиш.Когда вы хотите одну строку, group by
часто является жизнеспособным решением.