Mike Christensen <mike@xxxxxxxxxxxxx> writes: > Here's the query: > SELECT R.RecipeId, R.Title, R.Description, R.ImageUrl, R.Rating, > R.PrepTime, R.CookTime, R.OwnerId, U.Alias, ts_rank_cd(R.TextSearch, > query) as Rank > FROM Recipes R, plainto_tsquery('veggie burgers') query > INNER JOIN Users U ON U.UserId = R.OwnerId > WHERE (R.TextSearch @@ query) > AND NOT EXISTS (select 1 from RecipeIngredients inner join > IngredientBlacklist using (IngredientId) where RecipeId = r.RecipeId > and IngredientBlacklist.UserId = > 'affaa328-5b53-430e-991a-22674ede6faf' limit 1) > ORDER BY Rank DESC LIMIT 100; > Here's the error: > ERROR: invalid reference to FROM-clause entry for table "r" > LINE 3: INNER JOIN Users U ON U.UserId = R.OwnerId You've been bitten by the mysql-ish idea that comma and JOIN are interchangeable. They are not. In the SQL standard, and in every implementation of it other than mysql, JOIN binds tighter than comma --- so that INNER JOIN's condition can only refer to "query" and "u", not "r". Try it like this (or any of several other ways): FROM Recipes R INNER JOIN Users U ON U.UserId = R.OwnerId, plainto_tsquery('veggie burgers') query WHERE ... regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general