sql >> データベース >  >> RDS >> Mysql

UNIONmysqlクエリを最適化する

    基本的に示しているのは、モデルに設計上の問題があり、スーパー/サブタイプを実装するときに間違った選択が行われたように見えることです。機能要件は、2つの異なるテーブルからの(類似の)データを1つの統一されたセットとして持つことです。これらすべての行が1つのテーブルにある場合、これは簡単です。ですから、本当の問題は、なぜそうではないのかということです。

    あなたはまだこのクエリをより速く得ることができます(私は推測します)が、それは醜いです。

    SELECT * FROM 
       (SELECT * FROM (select title, id, date as date_added from test1 
                      ORDER BY date_added DESC LIMIT 0,8) t1
        UNION ALL 
        SELECT * FROM (select title, customer as id, date_added from test2 
                      ORDER BY date_added DESC LIMIT 0,8) t2
       ) joined
    ORDER BY date_added DESC
    LIMIT 0,8 
    


    1. SQL Serverチュートリアル–Transact-SQLをマスターするために必要なすべて

    2. MS SQL Server方言の例に関するSQL(DDL、DML)のチュートリアル

    3. SSRS-式を使用したGroup_Concatと同等ですか?

    4. 集計関数またはGROUPBY句のいずれにも含まれていないため、選択リストの列が無効です