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

SQL-brug kolonne fra undervalg i where-sætning

Du kan ikke bruge et kolonnealias i WHERE klausul.

Så enten pakker du din forespørgsel ind i en ydre markering og anvender din betingelse der

SELECT * 
  FROM
(
  SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
) q
 WHERE d >= 10

eller du kan introducere den betingelse i HAVING klausul i stedet for

SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
HAVING d >= 10

Endnu en fremgangsmåde er at bruge CROSS JOIN og anvend din betingelse i WHERE klausul

SELECT a, b, c, d
  FROM A CROSS JOIN 
(
  SELECT d FROM B LIMIT 0,1
) q
 WHERE d >= 10

Her er SQLFiddle demo for alle ovennævnte forespørgsler.



  1. Er det muligt at gemme billeder, lyde, videoer i SQL-databasen?

  2. Sådan finder du hierarkistien for en trærepræsentation

  3. Sådan får du optegnelser fra i dag i MySQL

  4. Kun variabler skal videregives ved reference i... på linje 13 Ikke bestået