2014-02-12 40 views
-1

這是我的老SQL:重寫查詢 - 棘手join任務

SELECT so.samplelist_id 
    FROM sales_flat_order sfo 
    JOIN sales_flat_order_address sfoa 
    ON sfo.entity_id = sfoa.parent_id 
    JOIN samplelist_order AS so 
    ON Concat(Lower(Trim(sfoa.postcode)), Lower(Trim(sfoa.lastname))) = 
     Concat(Lower(Trim(so.postcode)), Lower(Trim(so.lastname))) 

正如你所看到的,它比較從2 tablessales_flat_order_addresssamplelist_order字符串(糟糕的表現,我知道)。這樣可行。我現在的任務是重寫該查詢,以便它不再使用samplelist_order,而是使用sales_flat_order_adress

問題是,一張桌子(sales_flat_order_address)應該如何與自己比較數據?這可能嗎?有一個竅門如何做到這一點?

謝謝!

+0

你可以分享你的查詢說明的結果中創建一個額外的字段? – ursitesion

+2

目前還不清楚你想以什麼方式比較這張桌子和自己..雖然這樣做當然是完全可能的。你要找的結果是什麼? – OGHaza

+0

你想要輸出結果? – SagarPPanchal

回答

-1

最好的答案 - 恕我直言 - 寫一個腳本來建立一個正常的FK關係&在你的應用程序中運行。

如果你不能做到這一點,每個與級聯字段&索引