Обсуждение: syntax error on WHERE clause...
I'm getting syntax errors in what (I thought) is a simple query. This query works in SQLite, but in psql 8.3.14 gets: ERROR: syntax error at or near "WHERE" Here's the query: SELECT (d4.digit * 10000 + d3.digit * 1000 + d2.digit * 100 + d1.digit * 10 + d0.digit) AS date FROM digits AS d0 INNER JOIN digits AS d1 INNER JOIN digits AS d2 INNER JOIN digits AS d3 INNER JOIN digits AS d4 WHERE (d4.digit * 10000 + d3.digit * 1000 + d2.digit * 100 + d1.digit * 10 + d0.digit) < 33 ORDER BY date; Any idea what's wrong? FWIW, Digits is a table populated with 10 digits: => select * from digits; id | digit ----+------- 1 | 0 2 | 1 3 | 2 4 | 3 5 | 4 6 | 5 7 | 6 8 | 7 9 | 8 10 | 9 (10 rows) I'm sure it's something obvious, but reading http://www.postgresql.org/docs/8.3/interactive/queries-table-expressions.html has yet to lead me to enlightenment.
Robert Poor <rdpoor@gmail.com> writes: > I'm getting syntax errors in what (I thought) is a simple query. This > query works in SQLite, but in psql 8.3.14 gets: > ERROR: syntax error at or near "WHERE" > Here's the query: > SELECT (d4.digit * 10000 + d3.digit * 1000 + d2.digit * 100 + d1.digit > * 10 + d0.digit) AS date > FROM digits AS d0 > INNER JOIN digits AS d1 > INNER JOIN digits AS d2 > INNER JOIN digits AS d3 > INNER JOIN digits AS d4 > WHERE (d4.digit * 10000 + d3.digit * 1000 + d2.digit * 100 > + d1.digit * 10 + d0.digit) < 33 > ORDER BY date; > Any idea what's wrong? INNER JOIN requires an ON clause. If you really don't need any additional join conditions than what's in the WHERE, you could write CROSS JOIN, or you could just put commas there. regards, tom lane