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

Свържете две таблици, след което Поръчайте по дата, НО комбинирайки двете таблици

Ако колоните и на двете таблици са еднакви, можете да използвате UNION

SELECT X.*
  FROM ( SELECT `id`,
                `userID`,
                 'INVOICE' AS PTYPE
                 `amount`,
                 `date`
            FROM `invoices`
           WHERE {$userID} = userID  
          UNION
          SELECT `id`,
                 `userID`,
                 'PAYMENT' AS PTYPE
                 `amount`,
                 `date`
            FROM `payments`
           WHERE {$userID} = userID  
        ) X
 ORDER BY X.`date`

РЕДАКТИРАНЕ

Прочетете съответния раздел от ръководството за MySQL на СЪЮЗИТЕ. Има и други начини за формулиране на това, но това е моят предпочитан стил - трябва да е ясно за всеки, който чете, че клаузата ORDER BY се прилага за резултата от и двете страни на СЪЮЗА. Небрежно написан UNION - дори с ORDER BY - все пак може да остави крайния набор от резултати в неопределен ред.

Целта на PTYPE е тази заявка да връща допълнителна колона, наречена PTYPE, която показва дали всеки отделен ред е ФАКТУРА или ПЛАЩАНЕ... т.е. от коя от двете таблици идва. Това не е задължително, но често може да бъде полезно в рамките на съюз



  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 Split String и Select с резултати

  2. Обратно извикване на MySQL - има ли такова нещо?

  3. Достъп до XAMPP mysql чрез Python

  4. Как лесно да импортирате множество sql файлове в MySQL база данни?

  5. Mysql сравнява поле, разделено със запетая, с единичен низ