Oracle 三表联合查询
表1:
表名:fact
字段:monthId productId sales profit
表2:
表名:time
字段:monthId monthName
表3:
表名:product
字段:productId productName
查询结果是:
monthName sales profit 这三列
productName = ‘Stone’为筛选条件
------解决方案--------------------这语句很简单呀,就是很常见的查询的语句。
SELECT T.MONTHNAME, F.SALES, F.PROFIT
FROM TIME T, PRODUCT P, FACT F
WHERE T.MONTHID = F.MONTHID
AND P.PRODUCTID = F.PRODUCTID
AND P.PRODUCTNAME = 'Stone'
------解决方案--------------------SELECT T.MONTHNAME, F.SALES, F.PROFIT
FROM TIME T, PRODUCT P, FACT F
WHERE T.MONTHID = F.MONTHID
AND P.PRODUCTID = F.PRODUCTID
AND P.PRODUCTNAME = 'Stone'
------解决方案--------------------
select t.monthName,f.sales ,f.profit
from fact f
left outer join time t on t.monthId =f.monthId
left outer join product p on p.productId=f.productId
where p.productName = ‘Stone’
------解决方案--------------------与楼上观点一样