1) Даже если вы отображаете псевдоним «CUSTOMER_ID» с «CUSTOMERID» при отображении результатов, вы все равно должны использовать «CUSTOMER_ID» (фактическое имя столбца) в условии соединения.
Если у вас есть внешний запрос, который дополнительно присоединяет..фильтры..и так далее, вы можете использовать псевдоним "CUSTOMERID"
select e.empno , d.deptno Department_No
from scott_emp e,
scott_dept d
where d.Department_No = e.deptno;
ORA-00904: "D"."DEPARTMENT_NO": invalid identifier
использование ..
select e.empno , d.deptno Department_No
from scott_emp e,
scott_dept d
where d.deptno = e.deptno;
или
select * from
(select deptno Department_no,dname
from scott_dept) d,
scott_emp e
where d.Department_no = e.deptno
2) Возможно, не связано с вашим вопросом .. но ..
Второе левое соединение
<SUPPLIER>...
<PRODUCT>....
LEFT JOIN
purchasemaster
ON purchasemaster.customerid = **purchasedetail.customerid**
Разве это условие не должно быть в файле supplier.customerid? (если имя столбца одинаковое?)
__ * Обновление на основе предположений об имени столбца * --------
select sup.supplier_name,
prd.description,
prd.price,
prm.purchase_date_time,
prd.pmid,
prd.customer_id,
prd.quantity
from supplier sup
left join product prd
on (sup.supplierid = prd.productid)
left join purchasedetail prd
on (prd.productid = product.productid)
left join purchasemaster prm
on (prd.purchaseid = prm.purchaseid)