【发布时间】:2015-03-17 05:13:02
【问题描述】:
我是 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
谢谢
【问题讨论】:
-
您已经在进行连接,但使用的是旧版本的语法。 Jens 的答案具有更新版本的语法。
-
不相关,但是:123 是一个数字,而不是一个字符串。使用
single-quotation marks会引入不必要的implicit conversion。 -
在 ANSI SQL 中,“123”不是字符串,而是分隔标识符。 (即本例中名为 123 的列...)
-
@jarlh,如果你重读我的评论,我说的是单引号而不是双引号。
Oracle会抛出无效标识符错误。还阅读了OP的问题,他说“我想根据p_id ='123'列出所有信息。” -
@LalitKumarB,是的,我同意。但是在阅读了您的评论后,我也注意到代码示例中的“123”,这就是我写评论的原因。
标签: sql oracle join oracle11g jointable