我正在从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。初学者可以吗?
答案 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 );