2013-10-22 25 views
1

JOIN我知道有一個「位置」 LEFT的代表加入甲骨文有語法類似:「WHERE」語法相當於LEFT OUTER在PostgreSQL的

where t1.id(+) = t2.id 

有什麼PostgreSQL中相似?我搜索了文檔,但沒有找到這樣的功能。

+0

http://www.postgresql.org/message-id/003e01c1d65f$b9a01d80$01011eac @irina –

+0

謝謝,非常有用的,但在下面的鏈接存在的一個例子「左加盟+ where子句」,而不是用「其中」 – DraggonZ

+0

http://www.postgresql.org/docs更換「加入」的例子/8.2/static/explicit-joins.html –

回答

4

沒有這樣的操作者在Postgres的(或標準SQL)。

寫外Postgres里加入的唯一方法是使用ANSI明確的JOIN語法:

select * 
from table t1 
    left join table t2 on t1.id = t2.id; 

(也可能是倒過來 - 它已經年齡,因爲我最後一次使用甲骨文(+)運營商)

手冊中的更多細節:http://www.postgresql.org/docs/current/static/queries-table-expressions.html#QUERIES-FROM

你不應該在第一PLAC使用(+)運營商甲骨文被即甲骨文一直支持ANSI,因爲9i的連接和Oracle建議停止使用(+)運營商(上面的語句會工作得很好,在甲骨文和)

+0

據我所知,沒有「甲骨文(+)」像等同於PostgreSQL的? – DraggonZ

+1

@DraggonZ不,沒有。你爲什麼要這樣?不必重寫Oracle查詢? –

+0

@Clodoaldo Neto爲了不重寫現有的PostgreSQL查詢。該查詢從C#代碼動態構建(像whereString + =表名+「.ID =‘+ table.Table + +的tablename +「_id和」’。」)這是沒有測試遺留代碼,我需要更換一些與左連接wherts沒有打破任何其他邏輯。 – DraggonZ