在http://www.w3schools.com/sql/sql_alias.asp中,它提到使用别名来执行以下查询,
SELECT
Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM
Customers, Orders
WHERE
Customers.CustomerName = "Around the Horn"
AND Customers.CustomerID = Orders.CustomerID;
这让我对JOIN的使用感到困惑。是不是这种查询加入了两个表中的列?这种查询和JOIN之间有什么区别?
答案 0 :(得分:2)
JOIN和别名是两个不同的概念..别名用于创建替代名称(通常更短)以便更容易的对象引用和更容易阅读..因此您可以拥有列名别名或表名别名,例如:
select a.col1
from my_table as a
a是表my_table的别名
或
select a.col1 as c1
from my_table as a
其中c1是col1的别名
JOIN用于表之间的构建关系 加入可能是暗示或明显的
在您的代码中,您使用了implici join,并且保持关系的表之间的条件基于where子句
但你可以使用更明确的方式使用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"
答案 1 :(得分:0)
两者相同,没有区别。
仅可读性存在差异。
在我看来,PLSQL(ORACLE)开发人员在编写查询时选择别名,然后选择public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button exit =(Button)findViewById(R.id.button2);
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast t =Toast.makeText(getApplicationContext(),getString(R.string.exitMessage),Toast.LENGTH_SHORT);
t.show();
finish();
}
});
}
}
答案 2 :(得分:0)
您的问题的答案是您的查询与内部联接之间没有区别,但很多时候,在未明确定义关系的表之间进行写入查询或表格可能不需要关系。在这些情况下,您将使用左连接从第一个表返回数据,并使用右侧表中的零到多个项。使用您的格式,使写入和阅读更加困难。至于表别名,例如在编写自联接时,您需要使用它们,因此理解它们是必不可少的。