较复杂的SQL左链接查询

来源:互联网 发布:linux rm -f 编辑:程序博客网 时间:2024/06/06 08:53
SELECT
c.*,
t.contract_product_id,t.factory_name,t.product_no,t.product_desc,t.cnumber,t.packing_unit,t.price,t.amount,
t.ext_cproduct_id,t.ext_factory_name,t.ext_product_no,t.ext_product_desc,t.ext_cnumber,t.ext_packing_unit,t.ext_price,t.ext_amount

FROM

(SELECT * FROM contract_c) c
LEFT JOIN
(
SELECT
cp.contract_id,
cp.contract_product_id,cp.factory_name,cp.product_no,cp.product_desc,cp.cnumber,cp.packing_unit,cp.price,cp.amount,
ep.ext_cproduct_id,ep.factory_name AS ext_factory_name,ep.product_no
AS ext_product_no,ep.product_desc as ext_product_desc,ep.cnumber as
ext_cnumber,ep.packing_unit as ext_packing_unit,ep.price as
ext_price,ep.amount as ext_amount
FROM
(
SELECT
cp.contract_product_id,cp.contract_id,f.factory_name,cp.product_no,
cp.product_desc,cp.cnumber,cp.packing_unit,cp.price,cp.amount
FROM
(SELECT contract_product_id,contract_id,factory_id,product_no,
product_desc,cnumber,packing_unit, price,amount FROM
contract_product_c) cp
LEFT JOIN
(SELECT factory_id,factory_name FROM factory_c) f
ON cp.factory_id =
f.factory_id
) cp
LEFT JOIN
(
SELECT
ep.ext_cproduct_id,ep.contract_product_id,f.factory_name,ep.product_no,
ep.product_desc,ep.cnumber,ep.packing_unit,ep.price,ep.amount
FROM
(SELECT ext_cproduct_id,contract_product_id,factory_id,product_no,
product_desc,cnumber,packing_unit, price,amount FROM ext_cproduct_c)
ep
LEFT JOIN
(SELECT factory_id,factory_name FROM factory_c) f
ON
ep.factory_id=f.factory_id
) ep
ON cp.contract_product_id=ep.contract_product_id
) t
ON c.contract_id=t.contract_id
原创粉丝点击