-- 需求:查詢每一個員工信息,并且顯示每一個員工所在的部門名稱
-- mysql中多表查詢有四種,交叉鏈接cross JOIN,自然鏈接natural? JOIN,using鏈接,on鏈接
-- 交叉鏈接cross JOIN
SELECT * FROM emp; --6個結果
SELECT * FROM dept; --4個結果
-- 查詢出結果是一個笛卡爾積,條目數是6*4個
-- 缺點:查詢的內容emp表中,每一個員工會匹配所有部門,但是其中只有一個
-- 是我們需要的,查詢效率較低。
SELECT * FROM emp CROSS JOIN dept;
-- 自然鏈接natural
-- 優點:查詢出的內容就是我們希望的結果
-- 缺點:在確定哪一個列是共同字段的時候,查找效率較低,
-- 需要一個一個字段名比較才可以確定是哪一列
SELECT * FROM emp NATURAL JOIN dept;
-- useing鏈接
-- 優點:不需要挨個列去進行查找,可以指定對應列
-- 缺點:如果兩個表中沒有相同的字段名,這種方式就沒有辦法進行查詢。
SELECT * FROM emp JOIN dept USING(DEPTNO);
-- on鏈接(最實用)
SELECT * FROM emp JOIN dept ON emp.DEPTNO=dept.DEPTNO;
-- 也可以寫別名:
SELECT * FROM emp e JOIN dept d on e.DEPTNO=d.DEPTNO;