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

klauzule mysql AS

Jedním ze způsobů, jak toho dosáhnout, je zabalit původní dotaz jako poddotaz a přesunout WHERE klauzule k vnějšímu dotazu:

SELECT * FROM (
  SELECT `candidates`.`candidate_id`, -- this is the original query
     `candidates`.`first_name`, 
     `candidates`.`surname`, 
     `candidates`.`DOB`, 
     `candidates`.`gender`, 
     DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) AS `age` 
  FROM `candidates` ) as innertable
WHERE `age` <= 20  -- this is now part of the outer query

vysvětlení:toto FUNGUJE v MySQL 5

poznámka:předpokládá se, že původní dotaz funguje



  1. Smazat rodiče, pokud na něj neodkazuje žádný jiný potomek

  2. „Je to tajné? Je to bezpečné?" Zpracování citlivých dat při modelování dat

  3. Verze vs Distrib číslo MySQL

  4. Spring Batch:Nelze zvýšit identitu; vnořená výjimka je com.microsoft.sqlserver.jdbc.SQLServerException:Neplatný název objektu 'BATCH_JOB_SEQ'?