MySQL左連線,右連線,等值連線

2021-08-02 22:09:06 字數 2124 閱讀 9292

1.左連線(left join )

select m.columnname……,n.* columnname…..

from left_table m left join right_table n on m.columnname_join=n.columnname_join and n.columnname=***

where m.columnname=***…..

on字句連線條件,用於把2表中等值的記錄連線在一起,但是不影響記錄集的數量。若是表left_table中的某記錄,無法在表right_table找到對應的記錄,則此記錄依然顯示在記錄集鐘,只是表 right_table需要在查詢顯示的列的值用null替代;

on字句連線條件中表right_table.columnname=***用於控制right_table表是否有符合要求的列值還是用null替換的方式顯示在查詢列中,不影響記錄集的數量;

where字句控制記錄是否符合查詢要求,不符合則過濾掉;

簡單點說,就是 「left_table.columnname_join=right_table.columnname_join」用於統計兩個表的等值連線的記錄集,on子句

連線條件就是限制right_table的記錄集大小,where子句的條件是限制最終結果集的大小。最終結果集的大小是顯示「left_table「表的所有記錄,和「left_table「匹配的」right_table「的記錄顯示」right_table「列值,不匹配的話,顯示對應的」right_table「顯示為null(最終結果集的大小是left_table刨除where條件的記錄數)

2.右連線(right join)

select m.columnname……,n.* columnname…..

from left_table m right join right_table n on m. columnname_join=n. columnname_join and m. columnname=***

where n.columnname=***…..

on子句連線條件,用於把2表中等值的記錄連線在一起,若是表right_table中的某記錄,無法在表left_table找到對應的記錄,則表 left_table需要在查詢顯示的列的值用null替代;

on子句連線條件中表left_table.columnname=***用於控制left_table表是否有符合要求的列值,還是用null替換的方式顯示在查詢列表中;

where字句控制記錄是否符合查詢要求,不符合則過濾掉;

簡單點說,就是 「left_table.columnname_join=right_table.columnname_join」用於統計兩個表的等值連線的記錄集,on子句

連線條件就是限制left_table的記錄集大小,where子句的條件是限制最終結果集的大小。最終結果集的大小是顯示「right_table」表的所有記錄,和「right_table「匹配的」left_table「的記錄顯示」left_table「列值,不匹配的話,顯示對應的」left_table「顯示為null(最終結果集的大小是left_table刨除where條件的記錄數)

3.等值連線

select m.columnname……,n.* columnname…..

from left_table m [inner] join right_table n on m. columnname_join=n. columnname_join

where m.columnname=***….. and n.columnname=***….

或者select m.columnname……,n.* columnname…..

from left_table m  , right_table n

where m. columnname_join=n. columnname_join and 

m.columnname=***….. and n.columnname=***….

on子句連線條件,不再與左連線或右連線的功效一樣,除了作為2表記錄匹配的條件外,還會起到過濾記錄的作用,若left_table中記錄無法在right_table中找到對應的記錄,則會被過濾掉;

where字句,不管是涉及表left_table、表right_table上的限制條件,還是涉及2表連線的條件,都會對記錄集起到過濾作用,把不符合要求的記錄刷選掉;

MySQL左連線 右連線

表a記錄如下 aid anum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表b記錄如下 bid bname 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 200...

MySQL 左連線 右連線

表a記錄如下 aid anum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表b記錄如下 bid bname 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 200...

MySQL左連線 右連線

表a記錄如下 aid anum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表b記錄如下 bid bname 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 200...