Mysql
 sql >> база данни >  >> RDS >> Mysql

MySql пълно присъединяване (обединение) и подреждане на множество колони за дата

просто използвайки структурата на вашата база данни и вашата заявка и тъй като FULL OUTER JOIN не е наличен в MySQL, мисля, че решението може да бъде следното:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избиране на "следващия" ред при определени критерии в MySQL

  2. Как да коригирате "java.sql.SQLFeatureNotSupportedException", докато използвате метода createArrayOf()

  3. Колоната java.sql.sqlexception не е намерена

  4. #1064 -Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на версията на вашия MySQL сървър

  5. DATEDIFF() или BETWEEN за периоди от време в SQL заявки