SELECT o.id, o.code, o.sc_id, o.supplier_id, o.purchaser_id, o.expect_arrive_date, 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.link_number FROM tbl_purchase_order AS o SELECT o.id, o.code, o.sc_id, o.supplier_id, o.purchaser_id, o.expect_arrive_date, 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.link_number, d.id AS detail_id, d.product_id AS detail_product_id, d.order_num AS detail_order_num, d.tax_price AS detail_tax_price, 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_purchase_order AS o LEFT JOIN tbl_purchase_order_detail AS d ON d.order_id = o.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, purchase.price AS purchase_price, g.tax_rate, g.available FROM base_data_product AS g INNER JOIN base_data_product_purchase AS purchase ON purchase.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