SQL INNER JOIN关键字。我目前正在练习sql内连接(第一次)[关闭]

问题描述 投票:1回答:1

我正在从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? oracle 11g?我的sql? ms访问?我很紧张。在我的硬盘我下载了oracle 11g发布2 gui。对初学者来说还可以吗?

sql oracle oracle11g
1个回答
0
投票

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

优化器仅在简单的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
);
© www.soinside.com 2019 - 2024. All rights reserved.