2016-07-28 53 views
0

我有兩個表:甲骨文 - 聯接可選地基於價值

1)職工表

Name ID  City 
John 1  New York 
Tom  2  Vancouver 
Ash  3  
Chris 4  Oakland 

(請注意,失蹤灰城市信息)

2)市表

Name  Category 
New York Type-1 
Vancouver Type-2 
Oakland Type-1 

我想要做一個查詢,打印所有的員工姓名和城市類型,如果ava ilable。

在上述情況下預期的輸出是

Name   Type 
John   Type-1 
Tom   Type-2 
Ash   
Chris   Type-1 

我嘗試,

SELECT e.Name 
     c.Type 
FROM employee e, city c 
WHERE e.City = c.Name 

沒有運氣。

PS:我是新來的Oracle和SQL

+0

以下是關於如何格式化您的問題以提高可讀性的一些信息:[如何使用Markdown或HTML格式化我的帖子](http://stackoverflow.com/help /格式化) – sstan

回答

0

您需要左連接:

SELECT e.Name c.Type FROM employee e 
Left join city c on e.city=e.city 
0

你想要一個LEFT JOIN

SELECT e.Name, c.Type 
    FROM employee e 
    LEFT JOIN city c ON e.City = c.Name 
0

看到這是如何標記甲骨文,我想投入使用Oracle SQL,而不是ANSI的選項:

選擇e.name,從員工ēc.type ,C市 其中e.city = c.city(+)