2014-02-04 10 views
4

Я читаю документацию, и я не могу найти то, что я делаю неправильно здесь.Postgres Inner Join Выберите запрос возвращает ошибку: столбец не существует

Я выполнения этого запроса:

SELECT * 
FROM "parts" 
INNER JOIN "categories" ON "categories"."id" = "parts"."category_id" 
WHERE "categories"."name" = "cars" 

И я получаю эту ошибку:

ERROR: column "cars" does not exist 
LINE 3: WHERE (categories.name = "cars") 
           ^
********** Error ********** 

ERROR: column "cars" does not exist 
SQL state: 42703 
Character: 122 

Категория Таблица:

CREATE TABLE categories 
(
    id serial NOT NULL, 
    name character varying(255), 
    CONSTRAINT categories_pkey PRIMARY KEY (id) 
) 

частей Таблица:

CREATE TABLE parts 
(
    id serial NOT NULL, 
    category_id integer, 
    CONSTRAINT parts_pkey PRIMARY KEY (id) 
) 

Любая помощь будет принята с благодарностью.

+0

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS –

ответ

6

Вы должны использовать одиночные апострофы для строковых констант:

SELECT * 
FROM "parts" 
INNER JOIN "categories" ON "categories"."id" = "parts"."category_id" 
WHERE "categories"."name" = 'cars' 

В двойники означают объекты БД (поля, таблицы и т.д.)

(В противном случае они не нужны, только для массовки, для. примеры пробелов в именах и т. д.)

+0

Gah, что-то настолько простое .... Ну Спасибо!!! Некоторое время я стучал головой об этом. – newUserNameHere

Смежные вопросы