在oracle sql中加入多个表

时间:2015-01-19 08:30:10

标签: sql oracle join oracle11g jointable

我是SQL新手,想知道如何用SQL连接替换下面的代码。

我想根据p_id =' 123'列出所有信息。

select p.p_name,c.c_name,s.s_name,s.s_contact,b.b_name,b.b_contact 
from product p, category c, seller s, buyer b 
where p.p_id="123" and c.p_id="123" and s.p_id="123" and b.p_id="123";

使用的表格

产品表

p_id
p_name

类别表

p_id
c_id
c_name

卖家表

p_id
s_id
s_name
s_contact

买方表

p_id
b_id
b_name
b_contact

由于

2 个答案:

答案 0 :(得分:1)

这是使用join的查询:

select p.p_name,c.c_name,s.s_name,s.s_contact,b.b_name,b.b_contact 
from product p 
join buyer b  on p.p_id = b.p_id and <second condition>
join category c on  p.p_id = c.p_id
join seller s on c.p_id  = s.p_id
where p.p_id="123" ;

答案 1 :(得分:0)

尝试使用您的条件加入所有表格,如下所示:

SELECT p.p_name,c.c_name,s.s_name,s.s_contact,b.b_name,b.b_contact 
FROM product p INNER JOIN category c
ON   p.p_id = c.p_id
INNER JOIN seller s
ON p.p_id = s.p_id
INNER JOIN buyer b 
ON p.p_id = b.p_id
WHERE p.p_id='123';