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

MySql完全結合(結合)と複数の日付列での順序付け

    データベース構造とクエリを使用するだけで、MySQLではFULL OUTER JOINを使用できないため、解決策は次のようになると思います。

    SELECT
        `newsid`,
        `text`,
        CASE
            WHEN `datetime` IS NULL THEN `pdate`
            ELSE `datetime`
        END as `datetime,
        `pcount`
    (
    SELECT *
    FROM `news` as `n`
        LEFT OUTER JOIN (
                            SELECT count(pictureid) as `pcount`, datetime as `pdate`
                            FROM picture GROUP BY DATE(datetime)
                        ) as p ON DATE(n.datetime) = DATE(p.datetime) 
        UNION
    SELECT * 
        FROM `news` as `n`
        RIGHT OUTER JOIN (
                            SELECT count(pictureid) as `pcount`, datetime as `pdate`
                            FROM picture GROUP BY DATE(datetime)
                        ) as p ON DATE(n.datetime) = DATE(p.datetime) 
    
    )
    


    1. #1273-不明な照合:'utf8mb4_unicode_ci' cPanel

    2. 参照:MySQL拡張機能を使用した完璧なコードサンプルは何ですか?

    3. #1242-サブクエリが複数の行を返す-mysql

    4. 大規模なPHP配列のページネーション