クエリで列を指定すると、うまくいくはずです:
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
必要な列の選択に関してトリックを実行する必要があります。
一部のデータがitems_aにのみ存在し、一部のデータがitems_bにのみ存在するという事実を回避するには、次のことができます。
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
合体関数は最初のnull以外の値を返すため、各行でcol1がnull以外の場合はそれを使用し、そうでない場合はcol2などから値を取得します。