Это слишком долго для комментариев и может помочь решить вашу проблему. Ваш запрос выбирает ITEM_CATEGORY_NAME из II C, а не из PBW, и вы говорите, что хотите его из PBW. Также перед запуском стоит запятая ,
, поэтому запрос синтаксически некорректен, возможно, опечатка при публикации.
Отображение только тех столбцов, которые важны для объединений, изменение объединений в старом стиле на стандарт ANSI. Таким образом, вы четко увидите, как работают объединения:
select bh.bom_header_id,
bl.bom_header_id,
ssoi.sale_order_id,
itm.item_id,
bl.material_cat,
iic.item_category_id,
pbw.material_cat,
pbw.item_category_name
from pr_bom_headers bh
join pr_bom_lines bl on bl.bom_header_id = bh.bom_header_id
left join pr_bom_sub_lines bsl on bsl.bom_line_id = bl.bom_line_id
join sm_sale_order_items ssoi on ssoi.sale_order_id = bh.sale_order_id
join inv_items itm on itm.item_id = bh.item_id
left join inv_item_categories iic on iic.item_category_id = bl.material_cat
left join pr_bom_line_washings pbw on pbw.material_cat = iic.item_category_id
where bh.bom_header_id = 677
Если у вас есть строки с id = 677 в таблице bh
, и эти строки не отображаются в запросе выше, это означает, что они не имеют совпадений в bl
или ssoi
или itm
. Если вы хотите, чтобы они появились, измените проблему c присоединиться к левому соединению.