2013-11-15 3 views
0

Я новичок в использовании psycopg2 для взаимодействия с базой данных postgreSQL. Я пытаюсь выполнить полное внешнее соединение и не могу найти документацию, которая поможет мне с этой командой. Вот что я пытаюсь сделать в Python 2.6:Psycopg2 Full Outer Присоединиться к Python 2.6

cursor.execute(""" 
SELECT spl.id, 
    spl.index, 
    spl.d_id, 
    spl.p_id, 
    spl.pattern, 
    spe.id, 
    spe.index, 
    spe.d_id, 
    spe.p_id,  
FROM s_phrase_label spl 
FULL OUTER JOIN s_pattern_extraction spe 
ON spl.thread.id = spe.id 
    AND spl.d_id = spe.d_id, 
    AND spl.index = spe.index 
""") 

но я продолжаю получать ошибки. Заранее спасибо за помощь!

Edit: Ошибка

ProgrammingError: syntax error at or near "AND" 
LINE 14:      AND spl.index = spe.index 

ответ

1

Вы пропускаете запятую:

spl.d_id, 
    spl.p_id, 
    spl.pattern //Right here 
spe.id, 
+0

Спасибо. Я исправил запятую и до сих пор не повезло ... – ztoolson

+1

@ztoolson Поскольку у меня нет вашей схемы, возможно, это также означает, что вы хотите набрать 'spl.thread_id' вместо' spl.thread.id'? – wheaties

+0

Хороший улов на этом! Ты прав. – ztoolson

1

Вы не должны поместить запятую в середине логического выражения, используемого в пункте WHERE:

... 
AND spl.d_id = spe.d_id, -- This is an error. 
AND spl.index = spe.index 
... 

Кроме того, это не имеет ничего общего с psycopg: это синтаксическая ошибка SQL.

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