JOIN语句和没有它的语句之间有什么区别?

时间:2016-03-29 07:26:22

标签: sql oracle join

我目前正在学习SQL。我正在尝试使用Oracle SQL Developer创建视图。我遇到JOIN声明,但我不明白为什么我们需要JOIN。根据{{​​3}},JOIN的目的是将多行连接在一起。我可以在没有表达式JOIN的情况下执行此操作(请参阅以下代码块,它们都生成相同的视图/表)。那么JOIN的目的是什么?

使用INNER JOIN

SELECT 
    Acc.Cust_Id,
    Cus.Address,
    Acc.Avail_Balance
FROM 
    Account Acc
INNER JOIN
    Customer Cus
ON
    Acc.Cust_Id = Cus.CUST_ID

没有INNER JOIN

SELECT 
    Acc.Cust_Id,
    Cus.Address,
    Acc.Avail_Balance
FROM 
    Account Acc,
    Customer Cus
WHERE
    Acc.Cust_Id = Cus.CUST_ID

1 个答案:

答案 0 :(得分:0)

这两个查询是相同的,除了第一个ANSI-92 SQL语法和另一个是没有包含join子句的旧SQL语法。它们应该生成完全相同的内部查询计划,尽管您可能需要检查。

检查此链接 ANSI vs. non-ANSI SQL JOIN syntax