使用内部联接重新创建语句

时间:2014-03-14 01:14:03

标签: sql

我的声明如下:

select nomF from fournisseur as f, usine as u, puf, produit as p
where f.numF = puf.numF
and u.numU = puf.numU
and p.numP = puf.numP
where u.villeU in ('Paris','Créteil')

我想使用Inner Join重新创建它,但我不知道如何,因为它有多个关节。

这是我尝试过的,但我不知道它是否正确:

select nomF from fournisseur 
inner join puf on numF
inner join usine on numU
inner join produit on numP
where usine.villeU in ('Paris','Créteil')

有人可以告诉我,我使用inner join写的语句是否会返回与第一个相同的结果。

如果没有,那是我犯的错误。

提前致谢。

2 个答案:

答案 0 :(得分:1)

使用内部联接,您仍然需要像使用where子句

一样指定要加入的列
select nomF 
from fournisseur f
inner join puf ON f.numF = puf.numF
inner join usine u ON u.numU = puf.numU
    AND u.villeU in ('Paris','Créteil')
inner join produit p ON p.numP = puf.numP

答案 1 :(得分:1)

许多数据库支持using语法。这使您可以执行您似乎想要做的事情:

select nomF
from fournisseur inner join
     puf
     using (numF) inner join
     usine 
     using (numU) inner join
     produit 
     using (numP)
where usine.villeU in ('Paris','Créteil');