我有一個在線商店,兩個視圖,因爲我的產品可能來自我的包表或會話表。價格從價格表中加入。有條件的mysql表視圖
這兩個視圖自己工作正常,但是當我結合使用時,我得不到任何結果。 我希望我的貨運人員只能看到他應該出貨的物品,而不是數字物品,即交貨格式等於'DVD'的物品。
會話視圖:
select
`ats_store`.`order`.`payment_type` AS `payment_type`,
`production_www`.`paypal_transactions`.`createdOn` AS `order_date`,
`production_www`.`paypal_transactions`.`FIRSTNAME` AS `firstname`,
`production_www`.`paypal_transactions`.`LASTNAME` AS `lastname`,
`ats_store`.`order`.`id` AS `order_id`,
`ats_store`.`order`.`customerid` AS `customerid`,
`ats_store`.`order`.`shipping_address_id` AS `shipping_address_id`,
`ats_store`.`order`.`status` AS `status`,
`ats_store`.`order_items`.`product_id` AS `product_id`,
`ats_store`.`shipping_address`.`country` AS `country`,
`ats_store`.`shipping_address`.`street_1` AS `street1`,
`ats_store`.`shipping_address`.`street_2` AS `street2`,
`ats_store`.`shipping_address`.`street_3` AS `street3`,
`ats_store`.`shipping_address`.`city` AS `city`,
`ats_store`.`shipping_address`.`state_and_province` AS `state`,
`ats_store`.`shipping_address`.`zip_code` AS `zip`,
group_concat(`production_cache_salesforce_repl`.`ats_conference_session__c`.`Name`,
'(',
`price`.`Delivery_Format__c`,
')'
order by `production_cache_salesforce_repl`.`ats_conference_session__c`.`sort_code__c` ASC
separator ',') AS `session_products`
from
(((((`ats_store`.`order`
left join `ats_store`.`shipping_address` ON ((`ats_store`.`shipping_address`.`id` = `ats_store`.`order`.`shipping_address_id`)))
join `ats_store`.`order_items` ON ((`ats_store`.`order_items`.`order_id` = `ats_store`.`order`.`id`)))
join `production_cache_salesforce_repl`.`ats_store_price__c` `price` ON ((`price`.`Id` = `ats_store`.`order_items`.`product_id`)))
join `production_cache_salesforce_repl`.`ats_conference_session__c` ON ((`production_cache_salesforce_repl`.`ats_conference_session__c`.`Id` = convert(`price`.`ATS_Conference_Session__c` using utf8))))
left join `production_www`.`paypal_transactions` ON ((`production_www`.`paypal_transactions`.`id` = `ats_store`.`order`.`paypal_transaction_id`)))
where
((`ats_store`.`order`.`shipping_address_id` <> -(1))
and (`production_www`.`paypal_transactions`.`COMMENT1` = 'ATS Web Store')
and (`production_www`.`paypal_transactions`.`RESPMSG` = 'Approved')
and (`price`.`Delivery_Format__c` = 'DVD'))
group by `ats_store`.`order`.`id`
order by `production_www`.`paypal_transactions`.`createdOn`
包裝查看:
select
`ats_store`.`order`.`payment_type` AS `payment_type`,
`production_www`.`paypal_transactions`.`createdOn` AS `order_date`,
`production_www`.`paypal_transactions`.`FIRSTNAME` AS `firstname`,
`production_www`.`paypal_transactions`.`LASTNAME` AS `lastname`,
`ats_store`.`order`.`id` AS `order_id`,
`ats_store`.`order`.`customerid` AS `customerid`,
`ats_store`.`order`.`shipping_address_id` AS `shipping_address_id`,
`ats_store`.`order`.`status` AS `status`,
`ats_store`.`order_items`.`product_id` AS `product_id`,
`ats_store`.`shipping_address`.`country` AS `country`,
`ats_store`.`shipping_address`.`street_1` AS `street1`,
`ats_store`.`shipping_address`.`street_2` AS `street2`,
`ats_store`.`shipping_address`.`street_3` AS `street3`,
`ats_store`.`shipping_address`.`city` AS `city`,
`ats_store`.`shipping_address`.`state_and_province` AS `state`,
`ats_store`.`shipping_address`.`zip_code` AS `zip`,
`price`.`Delivery_Format__c` AS `delivery_format`,
group_concat(`production_cache_salesforce_repl`.`ats_store_package__c`.`Package_Code__c`,
'(',
`price`.`Delivery_Format__c`,
')'
order by `production_cache_salesforce_repl`.`ats_store_package__c`.`Package_Code__c` ASC
separator ',') AS `package_products`
from
(((((`ats_store`.`order`
left join `ats_store`.`shipping_address` ON ((`ats_store`.`shipping_address`.`id` = `ats_store`.`order`.`shipping_address_id`)))
join `ats_store`.`order_items` ON ((`ats_store`.`order_items`.`order_id` = `ats_store`.`order`.`id`)))
join `production_cache_salesforce_repl`.`ats_store_price__c` `price` ON ((`price`.`Id` = `ats_store`.`order_items`.`product_id`)))
join `production_cache_salesforce_repl`.`ats_store_package__c` ON ((`production_cache_salesforce_repl`.`ats_store_package__c`.`Id` = convert(`price`.`ATS_Store_Package__c` using utf8))))
left join `production_www`.`paypal_transactions` ON ((`production_www`.`paypal_transactions`.`id` = `ats_store`.`order`.`paypal_transaction_id`)))
where
((`ats_store`.`order`.`shipping_address_id` <> -(1))
and (`production_www`.`paypal_transactions`.`COMMENT1` = 'ATS Web Store')
and (`production_www`.`paypal_transactions`.`RESPMSG` = 'Approved')
and (`price`.`Delivery_Format__c` = 'DVD'))
group by `ats_store`.`order`.`id`
order by `production_www`.`paypal_transactions`.`createdOn`
下面是用兩種觀點查詢:
select *,group_concat(pv.package_products,',',sv.session_products) as products from ats_store.shipping_orders_sessions_view sv,ats_store.shipping_orders_packages_view pv
where sv.order_id = pv.order_id
group by sv.order_id
如果我從視圖中除去and (
價格.
Delivery_Format__c = 'DVD')
我可以得到訂單,但數字並顯示DVD產品。我只希望我的航運人員看到他應該出貨的物品,DVD。
謝謝!但我仍然得到不是DVD的專業知識。我只想得到DVD,因爲我的航運人員只應該看到這些。很好的解釋! –