sql >> Databasteknik >  >> RDS >> Mysql

MySql full join (union) och beställning på flera datumkolumner

bara genom att använda din databasstruktur och din fråga, och eftersom FULL OUTER JOIN inte är tillgängligt i MySQL, tror jag att en lösning kan vara denna:

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. Entity Framework med MySQL - Timeout löpte ut under generering av modell

  2. Hur flyttar jag en tabell till ett schema i T-SQL

  3. Ignorera mysql-felmeddelanden när du kör en sql-fil

  4. PHP PDO vs normal mysql_connect