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!

推薦閱讀: