SQL語句實現多表查詢
基本sql語句
SELECT <目標字段> FROM <數據庫表> WHERE <查詢條件> GROUP BY <分組依據> ORDER BY <排列依據>
多表查詢
內連接 :返回滿足連接條件的數據
格式:SELECT <目標字段> FROM <INNER JOIN+表名+ON+連接條件> WHERE <查詢條件>
註意:理清表與表之間的關系,從哪些表中查出哪些數據,表與表之間的連接條件是什麼
例一:雙表查詢
例二:多表查詢
a sys_user user_name => user_id dept_id b sys_user_role user_id => role_id c sys_role role_id => role_name d sys_role_dept role_id => dept_id e sys_dept dept_id => dept_name parent_id dept_name f sys_dept parent_id => dept_name
SELECT a.user_name, a.user_id, a.dept_id, b.role_id, c.role_name, e.dept_name, f.dept_name FROM sys_user AS a INNER JOIN sys_user_role AS b ON b.user_id = a.user_id INNER JOIN sys_role AS c ON c.role_id = b.role_id INNER JOIN sys_dept AS e ON e.dept_id = a.dept_id INNER JOIN sys_dept AS f ON f.dept_id = e.parent_id WHERE a.user_name = 'zjzsqxyf01'
外連接:外連接不隻列出與連接條件相匹配的行,而是列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數據行
(1)左連接:返回左表中的所有數據
格式:SELECT <目標字段> FROM <LEFT JOIN+表名+ON+連接條件> WHERE <查詢條件>
(2)右連接:返回右表中的所有數據
格式:SELECT <目標字段> FROM <RIGHT JOIN+表名+ON+連接條件> WHERE <查詢條件>
(3)全連接:在等值連接的基礎上將左表和右表的未匹配數據都加上
格式:SELECT <目標字段> FROM <FULL JOIN+表名+ON+連接條件> WHERE <查詢條件>
自然連接:以兩個表具有相同的字段的所有列為基礎,返回兩個表中滿足查詢條件的數據
到此這篇關於SQL語句實現多表查詢的文章就介紹到這瞭,更多相關SQL多表查詢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SQL數據庫的所有命令(函數、運算符)匯總大全
- mysql 帶多個條件的查詢方式
- SQL案例學習之字符串的合並與拆分方法總結
- Postgres 創建Role並賦予權限的操作
- Mysql 如何實現多張無關聯表查詢數據並分頁