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

Spočítejte si v MySQL z SELECT

Aliasy, které jsou definovány v klauzuli SELECT, nemůžete použít k výpočtu jiných sloupců, které jsou také ve stejné klauzuli SELECT. Máte alespoň tři možnosti:

  1. Poddotaz opakujte pokaždé, když jej potřebujete použít. To má tu nevýhodu, že budete muset opakovat hodně kódu. Vzhledem k tomu, že vaše poddotazy jsou dlouhé a složité, je tato možnost nežádoucí.

  2. Použijte poddotaz a vnější dotaz.

    SELECT
        *,
        (subtotal - payment) AS balance
    FROM
    (
         SELECT 
             ...,
             (...) AS subtotal,
             (...) AS payment
         FROM ... 
    ) T1
    
  3. Místo dílčích výběrů použijte JOIN. Toto je pro vaši situaci o něco složitější, ale z hlediska výkonu bude lepší, pokud budete někdy potřebovat načíst více než jeden řádek.



  1. Jak aktualizovat více sloupců v PostgreSQL

  2. Vypočítejte součet dvou sloupců v pořadí podle věty - laravel

  3. Interní chyba serveru Django 500 – nesprávně nakonfigurovaná:Chyba při načítání modulu MySQLdb:

  4. Datum se neukládá do Mysql z registračního formuláře PHP