一)內連接(等值連接):查詢客戶姓名,訂單編號,訂單價格
---------------------------------------------------
select c.name,o.isbn,o.price
from customers c inner join orders o
where c.id = o.customers_id;
---------------------------------------------------
select c.name,o.isbn,o.price
from customers c join orders o
where c.id = o.customers_id;
---------------------------------------------------
select c.name,o.isbn,o.price
from customers c,orders o
where c.id = o.customers_id;
---------------------------------------------------
select c.name,o.isbn,o.price
from customers c join orders o
on c.id = o.customers_id;
---------------------------------------------------
注意:內連接(等值連接)只能查詢出多張表中,連接字段相同的記錄
二)外連接:按客戶分組,查詢每個客戶的姓名和訂單數
---------------------------------------------------
左外連接:
select c.name,count(o.isbn)
from customers c left outer join orders o
on c.id = o.customers_id
group by c.name;
---------------------------------------------------
右外連接:
select c.name,count(o.isbn)
from orders o right outer join customers c
on c.id = o.customers_id
group by c.name;
---------------------------------------------------
注意:外連接既能查詢出多張表中,連接字段相同的記錄;又能根據一方,將另一方不符合相同記錄強行查詢出來
三)自連接:求出AA的老板是EE --------------------------------------------------- 內自連接: select users.ename,boss.ename from emps users inner join emps boss on users.mgr = boss.empno; --------------------------------------------------- 外自連接: select users.ename,boss.ename from emps users left outer join emps boss on users.mgr = boss.empno; --------------------------------------------------- 注意:自連接是將一張表,通過別名的方式,看作多張表后,再進行連接。 這時的連接即可以采用內連接,又可以采用外連接