2017-07-03 81 views
-2
SELECT `acart`.`order_number` AS `admin_order_number`, 
     `acart`.`user_id` AS `admin_user_id`, 
     `acart`.`created_by` AS `admin_created_by`, 
     `rcart`.`order_number` AS `renew_order_number`, 
     `rcart`.`user_id` AS `renew_user_id`, 
     `rcart`.`created_by` AS `renew_created_by`, 
     `scart`.`order_number` AS `shopping_order_number`, 
     `scart`.`user_id` AS `shopping_user_id`, 
     `scart`.`created_by` AS `shopping_created_by` 
FROM `cdp_order_transaction_master` AS `master` 
LEFT JOIN `cdp_admin_shopping_cart` AS `acart` 
    ON `acart`.`order_number`=`master`.`order_number` 
LEFT JOIN `cdp_renew_cart` AS `rcart` 
    ON `rcart`.`order_number`=`master`.`order_number` 
LEFT JOIN `cdp_shopping_cart` AS `scart` 
    ON `scart`.`order_number`=`master`.`order_number` 
WHERE master.order_number IS NULL 

讓我解釋一下我的問題,如果訂單是全成那麼它會去根據不同的情況,但如果隨後的秩序無法cdp_order_transaction_master表和其他3臺(cdp_admin_shopping_cart,cdp_renew_cart,cdp_shopping_cart)它不會去cdp_order_transaction_master表,並留在其他表, 所以我要失敗的順序是不存在的cdp_order_transaction_master,可以出現在任何其他表(cdp_admin_shopping_cart,cdp_renew_cart,cdp_shopping_c藝術)這個查詢有什麼問題?我得到空結果

+1

請在提問之前,先閱讀:https://stackoverflow.com/help/mcve –

+0

你確定你不希望'WHERE master.order_number IS NOT NULL'? –

+0

是的,我只想要NULL,我編輯我的問題以獲得更好的理解,請閱讀一次。 –

回答

2

WHERE master.order_number IS NULL

這是你的主表,一個d所有其他表的連接條件都在此列上。

您試圖加入空爲空

基於您的評論,請嘗試:

select 'cdp_admin_shopping_cart' as `err_table`, a1.order_number 
from cdp_admin_shopping_cart a1 
where not exists (select 1 from cdp_order_transaction_master a2 where a2.order_number = a1.order_number) 

union all 

select 'cdp_renew_cart' as `err_table`, a1.order_number 
from cdp_renew_cart a1 
where not exists (select 1 from cdp_order_transaction_master a2 where a2.order_number = a1.order_number) 

union all 

select 'cdp_shopping_c‌​art' as `err_table`, a1.order_number 
from cdp_shopping_c‌​art a1 
where not exists (select 1 from cdp_order_transaction_master a2 where a2.order_number = a1.order_number) 
+0

讓我解釋我的問題,如果順序成功,那麼它將根據情況進入cdp_order_transaction_master表和任何其他3表(cdp_admin_shopping_cart,cdp_renew_cart,cdp_shopping_cart),但如果順序失敗,則不會進入cdp_order_transaction_master表並保留在其他表 –

+0

所以我想失敗的命令是不存在於cdp_order_transaction_master,並可以在任何其他表(cdp_admin_shopping_cart,cdp_renew_cart,cdp_shopping_cart) –

+0

以上查詢是不是在MySQL中工作 –