Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vollständiger MySql-Join (Vereinigung) und Sortieren nach mehreren Datumsspalten

Verwenden Sie einfach Ihre Datenbankstruktur und Ihre Abfrage, und da FULL OUTER JOIN in MySQL nicht verfügbar ist, denke ich, dass eine Lösung die folgende sein könnte:

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) 

)