SELECT o.id, o.code, o.sc_id, o.customer_id, o.saler_id, o.total_num, o.total_gift_num, o.total_amount, o.description, o.create_by, o.create_time, o.update_by, o.update_time, o.approve_by, o.approve_time, o.status, o.refuse_reason, o.this_order_profit, o.custom_money, o.purchase_decimal, o.total_purchase_price, o.shipping_fee, o.lease_start_time, o.lease_end_time, o.is_lease, o.purchase_status FROM tbl_sale_order AS o SELECT o.id, o.code, d.sc_id, o.customer_id, o.saler_id, o.total_num, o.total_gift_num, o.total_amount, o.description, o.create_by, o.create_time, o.update_by, o.update_time, o.approve_by, o.approve_time, o.status, o.refuse_reason, o.this_order_profit, o.custom_money, d.purchase_decimal as 'purchaseDecimal', d.total_purchase_price as 'totalPurchasePrice', o.shipping_fee, o.lease_start_time, o.lease_end_time, o.is_lease, o.purchase_status, d.id AS detail_id, b.main_product_id AS detail_main_product_id, d.product_id AS detail_product_id, d.order_num AS detail_order_num, d.ori_price AS detail_ori_price, d.tax_price AS detail_tax_price, d.discount_rate AS detail_discount_rate, d.is_gift AS detail_is_gift, d.tax_rate AS detail_tax_rate, d.description AS detail_description, d.order_no AS detail_order_no FROM tbl_sale_order AS o LEFT JOIN tbl_sale_order_detail AS d ON d.order_id = o.id LEFT JOIN tbl_sale_order_detail_bundle AS b ON b.order_id = o.id AND b.product_detail_id = d.id SELECT g.id, g.code, g.name, c.id AS category_id, c.name AS category_name, b.id AS brand_id, b.name AS brand_name, g.sku_code, g.external_code, g.spec, g.unit, sale.price AS sale_price, g.sale_tax_rate, g.available, bp.price as 'purchaseDecimal' FROM base_data_product AS g INNER JOIN base_data_product_sale AS sale ON sale.id = g.id LEFT JOIN base_data_product_category AS c ON c.id = g.category_id LEFT JOIN base_data_product_brand AS b ON b.id = g.brand_id LEFT JOIN recursion_mapping AS rm ON rm.node_id = c.id and rm.node_type = 2 LEFT JOIN base_data_product_purchase as bp ON g.id= bp.id