2017-08-31 83 views
0

我有這樣的一個查詢。mysql的SELECT UNION返回錯誤的結果?

$sql = "SELECT * FROM `my_table` WHERE type!='' AND (page_option='0' OR page_option='1') ORDER BY type ASC"; 

前三個結果返回的列scenarioa1d3e1

現在,當我做了UNION ALL與其他相同的表:

$sql = "SELECT * FROM `my_table` 
        WHERE type!='' AND (page_option='0' OR page_option='1') 
        UNION ALL 
        SELECT * FROM `my_table_2` 
        WHERE type!='' AND (page_option='0' OR page_option='1') 
        UNION ALL 
        SELECT * FROM `my_table_3` 
        WHERE type!='' AND (page_option='0' OR page_option='1') 
        ORDER BY type ASC"; 

通過結果我環路和my_table前三欄是e1e1e1

每個表有一個稱爲type柱,其識別結果來自表。所以對於聯合查詢結果我加了一個條件,從my_table

if($type=="my_table") { 
    echo $scenario; 
} 

只顯示場景的場景應該是相同的單查詢,但事實並非如此。

我該如何解決?

+1

你能分享與預期輸出,你得到什麼實際輸出一些示例數據? –

+0

我做過了,單個查詢中的前三個結果應該與聯合查詢中的前三個結果相同,但它們不是。 – mdnba50

+0

您可以使每個表的別名「SELECT t1。* FROM my_table as t1」與數據相同。 –

回答