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

Kolonnealias genkendes ikke i WHERE-udtalelsen

Brug HAVING

HAVING
  LatestBookableTimestamp < UNIX_TIMESTAMP()

Som en sidebemærkning bruger du en afhængig underforespørgsel, hvilket er en dårlig idé, når det gælder ydeevne.

Prøv sådan her:

SELECT 
  a.ID,
  a.DistanceFromUtrecht,
  pp.LatestBookableTimestamp
FROM
  Accommodation AS a
INNER JOIN (
  SELECT
    FK_Accommodation,
    MAX(DateUntil) - (ReleaseDays * 60 * 60 * 24) AS LatestBookableTimestamp
  FROM 
    PricePeriod 
  GROUP BY 
    FK_Accommodation
) AS pp    
ON pp.FK_Accommodation = a.ID    
WHERE
  pp.LatestBookableTimestamp < UNIX_TIMESTAMP()


  1. php Forespørgsel INNER join tabeller

  2. Dvale tvinger tidsstempel til at fortsætte/indlæse som UTC

  3. Fjern en databasepostkonto fra en profil (SSMS)

  4. Sequelize geospatial forespørgsel:find n nærmeste punkter til en placering