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

Lav matematik i MySQL fra SELECT

Du kan ikke bruge aliaser, der er defineret i SELECT-udtrykket, til at beregne andre kolonner, der også er i det samme SELECT-udtryk. Du har mindst tre muligheder:

  1. Gentag underforespørgslen, hver gang du skal bruge den. Dette har den ulempe, at du bliver nødt til at gentage en masse kode. Da dine underforespørgsler er lange og komplekse, er dette en uønsket mulighed.

  2. Brug en underforespørgsel og en ydre forespørgsel.

    SELECT
        *,
        (subtotal - payment) AS balance
    FROM
    (
         SELECT 
             ...,
             (...) AS subtotal,
             (...) AS payment
         FROM ... 
    ) T1
    
  3. Brug en JOIN i stedet for undervalg. Dette er lidt mere komplekst for din situation, men det vil være bedre for ydeevnen, hvis du nogensinde har brug for at hente mere end én række.



  1. skabe unikke sidetitel slugs php

  2. Får du ugenummer fra en dato i MS SQL Server 2005?

  3. Hvordan bruger man det modsatte af BETWEEN i en MySQL-forespørgsel?

  4. MYSQL INNER JOIN med mulige tomme felter