SQL INNER JOIN关键字。我目前正在练习sql内部联接(第一次)

时间:2019-04-21 06:59:18

标签: sql oracle oracle11g

我正在从https://www.w3schools.com/sql/sql_join_inner.asp练习sql内部联接

INNER JOIN Syntax
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

这是上面的语法。我有两个桌子

以下是“订单”表中的一个选择:

OrderID CustomerID  EmployeeID  OrderDate      ShipperID
10308   2             7            1996-09-18          3
10309   37            3             1996-09-19         1
10310   77            8            1996-09-20          2

并且有一个客户表,您也可以检查链接。

如果我想从两个表中获取所有行,只要各列之间存在匹配项。

此处提供的语法为:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

案例1:

SELECT Orders.OrderID, Customers.CustomerName
FROM Customers
INNER JOIN Orders ON Orders.CustomerID = Customers.CustomerID;

问题1:如果我这样写怎么办?我会得到相同的结果吗?

问题2:如何知道表1和表2是哪一个?会基于我的看法吗?

我想知道的另一件事是https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join_inner 此sql试用版编辑器基于哪个sql?甲骨文11克?我的SQL?毫秒访问? 我很困惑。 在我的硬盘中,我下载了oracle 11g第2版gui。初学者可以吗?

1 个答案:

答案 0 :(得分:0)

对于这个简单的连接,它应该是相同的结果,也是性能明智的,因为Oracle的optimizer chooses the join order of tables

  

optimizer仅在简单的FROM子句中选择表的连接顺序。大多数使用JOIN关键字的联接被展平为简单的联接,因此优化器选择它们的联接顺序。

SQL教程展示并解释了如何使用Oracle语法,所以您很高兴

当不同数据库的语法不同时,它会通知您for example

MySQL:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);
SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);