2017-08-31 6 views
0

私はこの単一のクエリを持っています。返されたカラムscenarioためMysql SELECT UNIONが間違った結果を返しましたか?

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

最初の3つの結果はa1d3e1あります。今

私はすべての他の同一のテーブルとUNION操作を行います。my_tableの結果と最初の3つのカラムを通して

$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"; 

Iループはe1e1e1です。

各テーブルには、typeという名前の列があり、結果が出るテーブルを識別します。だから、ユニオンクエリ結果のために、私はmy_table

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

からのみのシナリオを表示するように条件を追加したシナリオは、単一のクエリと同じでなければなりませんが、そうではありません。

どうすれば解決できますか?

+1

いくつかのサンプルデータを期待される出力と実際の出力と共有できますか? –

+0

私はそうしました、単一のクエリの最初の3つの結果は、ユニオンクエリの最初の3つの結果と同一でなければなりませんが、そうではありません。 – mdnba50

+0

各テーブルのエイリアスを「SELECT t1。* FROM my_table as t1'」と同じデータにすることができます。 –

答えて

関連する問題