select * from
(
select *
from `table1`
where id in (
<подзапрос или список для выбора id>
)
and lang in (1, 2, 4)
union all
select *
from `table2`
where id in (
<подзапрос или список для выбора id>
)
and lang in (3)
)
order by
case when lang = 1 then 1
when lang = 2 then 2
else 3
end asc
Под IE9, например, после скрытия появляется зеленый квадрат (как и должно быть).
И только в IE10 - красный.