Att specificera kolumnerna i din fråga borde göra susen:
select a.col1, b.col2, a.col3, b.col4, a.category_id
from items_a a, items_b b
where a.category_id = b.category_id
bör göra susen när det gäller att välja de kolumner du vill ha.
För att komma runt det faktum att vissa data bara finns i items_a och vissa data bara finns i items_b, skulle du kunna göra:
select
coalesce(a.col1, b.col1) as col1,
coalesce(a.col2, b.col2) as col2,
coalesce(a.col3, b.col3) as col3,
a.category_id
from items_a a, items_b b
where a.category_id = b.category_id
Koalesceringsfunktionen kommer att returnera det första icke-nullvärdet, så för varje rad, om col1 inte är null, kommer den att använda det, annars får den värdet från col2, etc.