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

Защо MySQL не използва първичния ключ на JOIN плюс ORDER?

Можете ли да опитате тази версия (тя основно получава първо 420-те реда на corder таблица, запазва 20 от тях и след това прави 3 външни съединявания):

SELECT
    corder.id,
    corder.public_id,
    CONCAT(buyer.fname," ",buyer.lname) AS buyer_name,
    corder.status,
    corder.payment,
    corder.reserved AS R,
    corder.tracking_id != "" AS A,
    corder.payment_received AS pay_date,
    invoice.invoice_no AS inv,
    invoice.receipt_no AS rec,
    invoice.public AS pub_inv,
    proforma.proforma_no AS prof,
    proforma.public AS pub_pf,
    corder.rating,
    corder.rating_comments!="" AS got_comment
FROM
    ( SELECT * 
      FROM corder
      ORDER BY
        id DESC 
      LIMIT 400, 20
    )
    AS corder
LEFT JOIN user as buyer ON buyer.id = corder.buyer
LEFT JOIN invoice AS invoice ON invoice.id = corder.invoice
LEFT JOIN invoice AS proforma ON proforma.id = corder.proforma
ORDER BY
    corder.id DESC ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравняване на Percona XtraBackup с MySQL Enterprise Backup:Част първа

  2. Сравняване на клеймо за време с променлива за дата (MySQL и PHP)

  3. php + попълване на падащото меню при избор на друг

  4. Временните таблици не работят в PHPMyAdmin

  5. Използване на един сайт за множество домейни в PHP