[英]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.