sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor bruger MySQL ikke den primære nøgle på JOIN plus ORDER?

Kan du prøve denne version (den får som udgangspunkt først de 420 rækker af corder bord, beholder de 20 af dem og laver så de 3 ydre joinforbindelser):

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. Vælg få hele rækken svarende til max i MySQL Group

  2. Sådan tjekker du, om 'MySQL-serveren er gået væk'

  3. Hvordan ved jeg, hvornår en MySQL-OPDATERING var vellykket i forhold til faktisk opdaterede data?

  4. Hvordan kan jeg kontrollere, om datointerval eksisterer