2015-06-06 3 views
2

Я новичок в postgres. У меня есть запросpostgresql left external join column не существует

SELECT * FROM orders 
LEFT OUTER JOIN order_details ON order_details.orderid= orders.orderid 

об этом, это ошибка прибудете

SQL error: 

ERROR: column order_details.orderid doesn't exist 
LINE 2:  LEFT OUTER JOIN order_details ON order_details.orderid... 
             ^
In statement: 

SELECT COUNT(*) AS total FROM (SELECT * FROM orders 
LEFT OUTER JOIN order_details ON order_details.orderid= orders.orderid) AS sub 

Что мне не хватает в моем запросе? Спасибо до

+2

Это ясно, как солнце: order_details.orderid не существует. Можете ли вы поместить DDL вашего отношения 'order_details', если таковое имеется? – Houari

+0

Просто запустите 'SELECT * FROM order_details' и рассмотрите столбцы этой таблицы, в сообщении об ошибке указано, что в этой таблице нет столбца с именем' orderid'. – krokodilko

+0

Если столбцы были названы с двойными кавычками, тогда необходимо будет ссылаться на них, используя двойные кавычки и ту же оболочку, скажем, '' OrderId '' –

ответ

2

Postgres чувствителен к регистру. Ваш оператор SQL должен быть в правильном случае, и если имя таблицы или имя столбца не является строчным, вы должны заключить его в двойные кавычки. (как показано ниже)

SELECT * FROM orders 
LEFT OUTER JOIN order_details ON order_details."OrderID"= orders.orderid 
+0

С psql (PostgreSQL) 9.4.7 вам нужно« OrderID »также для * заказов *:' COPY (SELECT * FROM orders LEFT OUTER JOIN order_details ON order_details «OrderID» = заказы. «OrderID») TO '/tmp/orders.csv' С заголовком CSV; –