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

MySQLは同じテーブルに複数結合します

    page1、page2 ..は外部キー列であるというあなたのコメントに基づいて、私はそれが単純だと思います。

    次のようなもの:

    SELECT 
        s.unique_id, s.counter, s.sequence_length, s.yearmonth, 
        s.mod_date_stamp,
        pg1.page_url as page1, pg2.page_url as page2, 
        pg3.page_url as page3, pg4.page_url as page4, 
        pg5.page_url as page5
    FROM 
        session s
    LEFT JOIN 
        sessionpage pg1 ON pg1.unique_id = s.page1 
    LEFT JOIN 
        sessionpage pg2 ON pg2.unique_id = s.page2
    LEFT JOIN 
        sessionpage pg3 ON pg3.unique_id = s.page3
    LEFT JOIN 
        sessionpage pg4 ON pg4.unique_id = s.page4
    LEFT JOIN 
        sessionpage pg5 ON pg5.unique_id = s.page5
    

    これでうまくいくと思います。

    ただし、(テーブルセッションの)列に値がない場合は、0(ゼロ)ではなくnullを使用する必要があります。

    SELECTステートメントに関するもう1つのヒントとして、NULL値が必要ない場合は、次を使用できます。

    COALESCE(pg5.page_url, ' ') as page5
    



    1. mySQLgroupconcatがBLOBxxxB/Kibを返します

    2. SQL Server(T-SQL)で「date」を「smalldatetime」に変換する例

    3. ハッシュ何?ハッシュインデックスを理解する

    4. コミットと選択の間のOracleの遅れ