Задание столбцов в вашем запросе должно помочь:
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
Функция coalesce вернет первое ненулевое значение, поэтому для каждой строки, если col1 не ноль, она будет использовать это, в противном случае она получит значение из col2 и т. Д.