sql >> Databáze >  >> RDS >> Mysql

Proč MySQL nepoužívá primární klíč na JOIN plus ORDER?

Můžete zkusit tuto verzi (v podstatě dostane nejprve 420 řádků corder tabulky, ponechá si 20 z nich a poté provede 3 vnější spojení):

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. Agregační funkce přes pole

  2. schéma APPLSYSPUB

  3. Jak často byste měli zálohovat své databáze?

  4. Jednoduchý způsob, jak transponovat sloupce a řádky v SQL?