我有两个多联接查询。
1来自“会话”表的产品,另一种来自“包装”表的产品。这两个查询都必须与我的order和order_items表联接。

在我们的订单列表网页中,单个订单应如下所示:

|order id  |  products|
|123       |  A2,PKG1 |


每个单独的查询组都会合并产品,但是如何将来自两个不同联接查询的concat产品分组呢?

我最初的想法是联接表,但是我的同事说只使用对象。

我真的不想编写代码/构造对象,因为产品仅用于显示。

任何人都可以提出快速简便的建议吗?除了联接表或使用对象以外的任何东西。

这是我的两个查询:

会话:
选择ats_store.order.payment_type,production_www.paypal_transactions.createdOn作为order_date,production_www.paypal_transactions.FIRSTNAME作为名字,
production_www.paypal_transactions.LASTNAME作为姓氏,ats_store.order.id作为order_id,ats_store.order.customerid,ats_store.order.shipping_address_id,ats_store.order.status,ats_store.order_items.product_id,ats_store.shipping_address.country作为国家/地区,ats shipping_address.street_1作为street1,ats_store.shipping_address.street_2作为street2,ats_store.shipping_address.street_3作为street3,ats_store.shipping_address.city作为城市,ats_store.shipping_address.state_and_province作为州,ats_store.ships_connection_ale.force_cons.zip(UP ats_conference_session__c。按production_cache_salesforce_repl.ats_conference_session__c.Sort_Code__c的名称顺序)
作为产品,production_cache_salesforce_repl.ats_conference_session__c.Sort_Code__c
来自ats_store.order
左联接ats_store.shipping_address开启ats_store.shipping_address.id = ats_store.order.shipping_address_id
内联ats_store.order_items开启ats_store.order_items.order_id = ats_store.order.id
内联接production_cache_salesforce_repl.ats_store_price__c价格ON price.Id = ats_store.order_items.product_id
加入production_cache_salesforce_repl.ats_conference_session__c开启production_cache_salesforce_repl.ats_conference_session__c.Id = price.ATS_Conference_Session__c
左联接production_www.paypal_transactions开启production_www.paypal_transactions.id = ats_store.order.paypal_transaction_id
其中ats_store.order.shipping_address_id!= -1和production_www.paypal_transactions.COMMENT1 ='ATS Web Store'和production_www.paypal_transactions.RESPMSG ='已批准'
按ats_store.order.id分组按order_date分组

套餐:
选择ats_store.order.payment_type,production_www.paypal_transactions.createdOn作为order_date,production_www.paypal_transactions.FIRSTNAME作为名字,
production_www.paypal_transactions.LASTNAME作为姓氏,ats_store.order.id作为order_id,ats_store.order.customerid,ats_store.order.shipping_address_id,ats_store.order.status,ats_store.order_items.product_id,ats_store.shipping_address.country作为国家/地区,ats shipping_address.street_1为str​​eet1,
ats_store.shipping_address.street_2作为street2,ats_store.shipping_address.street_3作为street3,ats_store.shipping_address.city作为城市,
ats_store.shipping_address.state_and_province为州,ats_store.shipping_address.zip_code为zip,
GROUP_CONCAT(production_cache_salesforce_repl.ats_store_package__c.Package_Code__c订单由production_cache_salesforce_repl.ats_store_package__c.Package_Code__c排序)
作为产品
来自ats_store.order
左联接ats_store.shipping_address开启ats_store.shipping_address.id = ats_store.order.shipping_address_id
内联ats_store.order_items开启ats_store.order_items.order_id = ats_store.order.id
内部联接production_cache_salesforce_repl.ats_store_price__c价格ON price.Id = ats_store.order_items.product_id
加入production_cache_salesforce_repl.ats_store_package__c ON production_cache_salesforce_repl.ats_store_package__c.Id = price.ATS_Store_Package__c
左联接production_www.paypal_transactions开启production_www.paypal_transactions.id = ats_store.order.paypal_transaction_id
其中ats_store.order.shipping_address_id!= -1和production_www.paypal_transactions.COMMENT1 ='ATS Web Store'和production_www.paypal_transactions.RESPMSG ='已批准'
按ats_store.order.id分组按order_date分组

最佳答案

为了简化,请执行以下操作:

1)为您要加入的每个查询创建一个视图

2)创建视图后:

SELECT ProductID, SUM(Amout) FROM
(SELECT * FROM vw_View1
UNION ALL
SELECT * FROM vw_View2
UNION ALL
SELECT * FROM vw_View3) GROUP BY ProductID


只需确保所有视图具有相同数量的字段和名称即可。

这符合您的需求吗?

关于php - 结合两个mysql结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22409688/

10-14 13:55