<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
多表查詢分類
SELECT employees.employee_id, employees.last_name, employees.department_id, departments.department_id, departments.location_id FROM employees, departments WHERE employees.department_id = departments.department_id;
拓展1:多個連線條件與 AND 操作符
拓展2:區分重複的列名
表名
加以區分。SELECT employees.last_name, departments.department_name,employees.department_id FROM employees, departments WHERE employees.department_id = departments.department_id;
拓展3:表的別名
SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e , departments d WHERE e.department_id = d.department_id;
需要注意的是,如果我們使用了表的別名,在查詢欄位中、過濾條件中就只能使用別名進行代替,不能使用原有的表名,否則就會報錯。
阿里開發規範
:【
強制
】對於資料庫中表記錄的查詢和變更,只要涉及多個表,都需要在列名前加表的別名(或 表名)進行限定。
說明
:對多表進行查詢記錄、更新記錄、刪除記錄時,如果對操作列沒有限定表的別名(或表名),並且操作列在多個表中存在時,就會拋異常。
正例
:select t1.name from table_first as t1 , table_second as t2 where t1.id=t2.id;
反例
:在某業務中,由於多表關聯查詢語句沒有加表的別名(或表名)的限制,正常執行兩年後,最近在 某個表中增加一個同名欄位,在預釋出環境做資料庫變更後,線上查詢語句出現出 1052 異常:Column ‘name’ in field list is ambiguous。
拓展4:連線多個表
總結:連線 n個表,至少需要n-1個連線條件。 比如,連線三個表,至少需要兩個連線條件。
練習:查詢出公司員工的 last_name,department_name, city
SELECT e.last_name,d.department_name,l.city FROM employees e,departments d,locations l WHERE e.department_id = d.department_id AND d.location_id = l.location_id
SELECT e.last_name, e.salary, j.grade_level FROM employees e, job_grades j WHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal; 或 WHERE e.salary >= j.lowest_sal AND e.salary <= j.highest_sal;
當table1
和table2
本質上是同一張表,只是用取別名的方式虛擬成兩張表以代表不同的意義。然後兩個表再進行內連線,外連線等查詢。
題目:查詢employees表,返回“Xxx works for Xxx”
SELECT CONCAT(worker.last_name ,' works for ' , manager.last_name) FROM employees worker, employees manager WHERE worker.manager_id = manager.employee_id ;
自連線的例子:
查詢員工id,員工姓名及其管理者的id和姓名
SELECT emp.employee_id,emp.last_name,mgr.employee_id,mgr.last_name FROM employees emp ,employees mgr WHERE emp.`manager_id` = mgr.`employee_id`;
除了查詢滿足條件的記錄以外,外連線還可以查詢某一方不滿足條件的記錄。
內連線:合併具有同一列的兩個以上的表的行, 結果集中不包含一個表與另一個表不匹配的行
SELECT employee_id,department_name FROM employees e,departments d WHERE e.`department_id` = d.department_id; #只有106條記錄
外連線:合併具有同一列的兩個以上的表的行, 結果集中除了包含一個表與另一個表匹配的行之外,還查詢到了左表 或 右表中不匹配的行。
外連線的分類:左外連線、右外連線、滿外連線
左外連線:兩個表在連線過程中除了返回滿足連線條件的行以外還返回左表中不滿足條件的行,這種連線稱為左外連線。
右外連線:兩個表在連線過程中除了返回滿足連線條件的行以外還返回右表中不滿足條件的行,這種連線稱為右外連線。
內連線: 合併具有同一列的兩個以上的表的行, 結果集中不包含一個表與另一個表不匹配的行。
外連線: 兩個表在連線過程中除了返回滿足連線條件的行以外還返回左(或右)表中不滿足條件的行 ,這種連線稱為左(或右) 外連線。沒有匹配的行時, 結果表中相應的列為空(NULL
)。
如果是左外連線,則連線條件中左邊的表也稱為主表
,右邊的表稱為從表
。
如果是右外連線,則連線條件中右邊的表也稱為主表
,左邊的表稱為從表
。
到此這篇關於mysql多表查詢的幾種分類詳細的文章就介紹到這了,更多相關mysql多表查詢內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45