sql >> Database >  >> RDS >> Mysql

MySql full join (union) en bestellen op meerdere datumkolommen

gewoon je databasestructuur en je query gebruiken, en aangezien FULL OUTER JOIN niet beschikbaar is in MySQL, denk ik dat een oplossing dit zou kunnen zijn:

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. syntaxisfout krijgen bij het maken van een functie

  2. Transactielogboeken bekijken in SQL Server 2008

  3. Waarom slaat mysql sommige auto-increment-id's over?

  4. Wat is de grootte van de kolom van int(11) in mysql in bytes?