如果table2数据包含table1的主键,则获取它

时间:2016-01-22 11:13:08

标签: sql oracle

我有两个表COD_CLIENTCLIENT表的主键。 Adress没有主键。

CLIENT

COD_CLIENT | NAME_CLIENT

ADRESS

COD_CLIENT | CITY | STREET | NUMBER

我想获得所有客户端,如果地址包含客户端代码,我也想在一个查询中选择此行。

但如果没有地址,只需忽略Adress行,但保留Client数据。

我试过了:

SELECT c.*,e.* 
FROM CLIENT c 
RIGHT JOIN ADRESS e (e.COD_CLIENT = c.COD_CLIENT)

但当然它没有用。

如何实现这些结果?

2 个答案:

答案 0 :(得分:3)

如果我理解得很好......您只需要使用左连接更改正确加入,以便SQL检索客户端表上的所有客户端及其地址。如果他们没有地址,你将在这些字段中获得NULL。

SO:

SELECT c.*,e.* 
FROM CLIENT c 
LEFT JOIN ADRESS e ON e.COD_CLIENT = c.COD_CLIENT

参考:http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

答案 1 :(得分:0)

SELECT c.*,e.* 
FROM CLIENT c 
LEFT JOIN ADRESS e ON e.COD_CLIENT = c.COD_CLIENT