简体   繁体   中英

Using SQL Alias vs Inner Join, what is the difference?

In http://www.w3schools.com/sql/sql_alias.asp , it mentions using alias to do the following query,

SELECT 
    Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM 
    Customers, Orders
WHERE 
    Customers.CustomerName = "Around the Horn" 
    AND Customers.CustomerID = Orders.CustomerID;

This confuses me with the usage of JOIN. Isn't this kind of query joining the columns from two tables? What are the differences between this kind of query and JOIN?

JOIN and alias are two differnt concept .. the alias is for create a substitutive name (shorter usually) for a more easy object reference and for a more easy read .. so you can have column name alias or table name alias eg:

select a.col1 
from my_table as a 

a is an alias for the table my_table
or

select a.col1  as c1
from my_table as a 

where c1 is an alias for col1

JOIN are for build relation between table The Join can be implict or explict

In your code you are using implici join and the condition between the tables that keep the relation is based on where clause

but you could use a more espressive way using explict join

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers
INNER JOIN  Orders on Customers.CustomerID=Orders.CustomerID;
WHERE  Customers.CustomerName="Around the Horn" 

Both the same, there is no difference.

There are differences only in readability . In my opinion, PLSQL(ORACLE) developer choosing alias when writing queries then TSQL(SQL Server) developer choosing by Join

The answer to your question is there is no difference between your query and an inner join but many times, your write queries between tables where the relationships are not explicitly defined or a table may not require a relationship. In those cases, you would use a left join to return data from a first table and zero to many items from the table on the right. Using your format, makes that a lot more difficult to write and read. As for table Aliases, when writing self joins for example, you will need to use them so understanding them is essential.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM