簡體   English   中英

為什么我們使用聯接從多個表中獲取數據?

[英]why we use join to get data from more one table?

我使用Windows 7和oracle 11g,因此當我們要從多個表中獲取數據時,可以使用join或普通選擇:

select d.department_id,e.employee_id
from employees e,departments d
where d.department_id = e.employee_id;

我的問題是

為什么我們只使用這種簡單的方法從多個表中獲取數據? 為什么人們使用聯接或任何其他方式而忽略這種方式?

對不起,英語不好

您提供的查詢是使用SQL-89連接語法編寫的。 這是一種過時的舊語法,有時很難閱讀。

select d.department_id,e.employee_id
from employees e,departments d
where d.department_id = e.employee_id;

如果必須聯接兩個以上的表怎么辦? 如果聯接條件不是那么簡單怎么辦?
您的WHERE子句中只會有很多條件,很難與它們所應用的表匹配。

您的查詢應重寫為:

select d.department_id,e.employee_id
from employees e 
   join departments d on d.department_id = e.employee_id;

這兩個查詢相等,但是后者使用SQL-92連接語法更可取。 清晰,明顯且易於閱讀。

如果仍然有疑問,請嘗試編寫一個查詢,該查詢連接5個以上的表。 您將看到新語法的優點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM