1. 程式人生 > >資料庫查詢內連線,外連線,各種查

資料庫查詢內連線,外連線,各種查

一、外連線
1.概念:包括左向外聯接、右向外聯接或完整外部聯接


2.左連線:left join 或 left outer join
(1)左向外聯接的結果集包括 LEFT OUTER 子句中指定的左表的所有


行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有


匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值


(null)。
(2)sql語句
select * from table1 left join table2 on 


table1.id=table2.id
-------------結果-------------
idnameidscore
------------------------------
1lee190
2zhang2100
4wangNULLNULL
------------------------------
註釋:包含table1的所有子句,根據指定條件返回table2相應的字


段,不符合的以null顯示


3.右連線:right join 或 right outer join
(1)右向外聯接是左向外聯接的反向聯接。將返回右表的所有行。如


果右表的某行在左表中沒有匹配行,則將為左表返回空值。
(2)sql語句
select * from table1 right join table2 on 


table1.id=table2.id
-------------結果-------------
idnameidscore
------------------------------
1lee190
2zhang2100
NULLNULL370
------------------------------
註釋:包含table2的所有子句,根據指定條件返回table1相應的字


段,不符合的以null顯示


4.完整外部聯接:full join 或 full outer join 
(1)完整外部聯接返回左表和右表中的所有行。當某行在另一個表中


沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有


匹配行,則整個結果集行包含基表的資料值。
(2)sql語句
select * from table1 full join table2 on 


table1.id=table2.id
-------------結果-------------
idnameidscore
------------------------------
1lee190
2zhang2100
4wangNULLNULL
NULLNULL370
------------------------------
註釋:返回左右連線的和(見上左、右連線)


二、內連線
1.概念:內聯接是用比較運算子比較要聯接列的值的聯接


2.內連線:join 或 inner join 


3.sql語句
select * from table1 join table2 on table1.id=table2.id
-------------結果-------------
idnameidscore
------------------------------
1lee190
2zhang2100
------------------------------
註釋:只返回符合條件的table1和table2的列


4.等價(與下列執行效果相同)
A:select a.*,b.* from table1 a,table2 b where a.id=b.id
B:select * from table1 cross join table2 where 


table1.id=table2.id  (注:cross join後加條件只能用where,不


能用on)


三、交叉連線(完全)


1.概念:沒有 WHERE 子句的交叉聯接將產生聯接所涉及的表的笛卡


爾積。第一個表的行數乘以第二個表的行數等於笛卡爾積結果集的


大小。(table1和table2交叉連線產生3*3=9條記錄)


2.交叉連線:cross join (不帶條件where...)


3.sql語句
select * from table1 cross join table2
-------------結果-------------
idnameidscore
------------------------------
1lee190
2zhang190
4wang190
1lee2100
2zhang2100
4wang2100
1lee370
2zhang370
4wang370
------------------------------
註釋:返回3*3=9條記錄,即笛卡爾積

相關推薦

mysql資料庫(3)--連線查詢、子查詢、合併、分頁【入門】

可以參照前兩個帖子,按順序的,mysql資料庫(1)有完整的建表語句 mysql資料庫(1)---簡單查詢 mysql資料庫(2)---單行函式、多行函式、分組查詢   -- 簡單查詢語句的完整語法 /*完整語法 SELECT 查詢列表 FROM 表名 WH

資料庫查詢連線連線各種

一、外連線 1.概念:包括左向外聯接、右向外聯接或完整外部聯接 2.左連線:left join 或 left outer join (1)左向外聯接的結果集包括 LEFT OUTER 子句中指定的左表的所有 行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有 匹配行,則在相關聯的結果集行中右表的所有選

SQL多表聯合查詢(交叉連線連線連線)

連線查詢:                 交叉連線:             &nbs

Mysql之連線查詢(交叉連線連線連線using關鍵字使用場景)

連線查詢 連線查詢:將多張表連到一起進行查詢(會導致記錄數行和欄位數列發生改變) 連線查詢的意義 在關係型資料庫設計過程中,實體(表)與實體之間是存在很多聯絡的。在關係型資料庫表的設計過程中,遵循著關係來設計:一對一,一對多和多對多,通常在實際操作的過程中,需要利用這層

多表查詢連線(隱式、顯示)連線(左、右、基礎表)

from子句進行多表查詢 例如:查詢分數資訊,顯示玩家暱稱、遊戲名稱和分數 select user_name as '暱稱', gname as '遊戲名稱', score as '分數'

Mysql中的關聯查詢(連線連線連線)

在使用資料庫查詢語句時,單表的查詢有時候不能滿足專案的業務需求,在專案開發過程中,有很多需求都是要涉及到多表的連線查詢,總結一下mysql中的多表關聯查詢 一,內連線查詢 是指所有查詢出的結果都是能夠在連線的表中有對應記錄的。 以t_employee(員工表)和t_dept

連線連線、子查詢(exists用法關聯/非關聯子查詢)、課堂練習(行列轉換)、rownum和rowid

笛卡爾積 和內連線 外連線 實際上是兩張表的乘積,查詢結果沒有實際意義 select * from emp,dept; 內連線-等值內連線(隱式) select * from emp,dept where emp.deptno = dept.deptno

關係資料庫中關係表間的連線(左連線連線連線連線連線

關係資料庫中關係表間的連線主要有:內連線和外連線。 內連線:把兩個表中資料對應的資料查詢出來。 外連線:以某個表為基礎把對應資料查詢出來(全連線是以多個表為基礎),其中又包括左連線和右連線兩種。 比如,有下面兩個關係表student和grade。 Studen

資料庫Oracle之多表查詢:笛卡爾積、等值連線、不等值連線連線連線

         select  e.empno, e.ename, e.sal, s.grade   from emp e, SALGRADE s   where e.sal >= s.losal and e.sal <= s.hisal    -- where e.sal between s.

mysql中連線連線等值連線非等值連線自然連線的區別和聯絡

內連線,外連線實際上都是在笛卡爾積(join)的基礎上對記錄進行篩選。 等值連線和非等值連線:這兩者同時包含在內連線和外連線中,因為內連線和外連線都是需要連線條件的,條件為=則為等值連線,反之為非等值連線。 自然連線:等值連線的一種,使用natural join後面可以不

SQL連結連線交叉連線聯合連線區別詳解

一、準備工作: 建立資料表並填寫資訊 class表: student表: 二、詳解 1、內連結 INNER JOIN 用於取得兩個表中存在連線匹配關係的記錄(例如:某一列相等)。通常配合比較運算子(=或<>)一起使用。其中

連線 和右連結的區別連線連線的卻別!!

假設有A,B兩個表。   表A記錄如下:   aID     aNum   1     a20050111   2     a20050112   3     a20050113   4     a20050114   5     a20050115   表B記錄如下:  

mysql 資料庫查詢語句 左連線連線連線區別

 左外連結查詢:A  left join  B  on  conidtion  where condition       用A表 的全部資料去匹配 B表 B表無匹配資料時用null代替                       左聯左不丟資料  右外連線查詢:A  ri

連線 和右連結的區別連線連線的區別

假設有A,B兩個表。  表A記錄如下:  aID     aNum  1     a20050111  2     a20050112  3     a20050113  4     a20050114  5     a20050115  表B記錄如下:  bID     b

MySQL 連線 通過例項總結詳解 笛卡爾積自然連線連線連線

MySQL 連線 表結構: 以下是使用到的兩張表instructor和teaches,我們希望通過屬性ID進行連線 mysql> select * from instructor; +-------+------------+------------

Mysql——連線(笛卡兒積/叉連線連線/等值連線自然連線連線連線連線

表t1,t2 笛卡兒積/叉連線; 共n*m條 欄位為兩個之和 內連線/等值連線 自然連線 自然內連線 自然左外連線 自然右外連線 外連線: 左(

SQL的四種連線連線連線

一,內連線(inner join) 內連線(INNER JOIN):分顯式的和隱式的,返回連線表中符合連線條件和查詢條件的資料行。(所謂的連線表就是資料庫在做查詢形成的中間表)。 1.隱式的內連線 沒有INNER JOIN,形成的中間表為兩個表的笛卡爾積。

SQL語句的並集UNION交集JOIN(連線連線)交叉連線(CROSS JOIN笛卡爾積)差集(NOT IN)

1.a. 並集UNIONSELECT column1, column2 FROM table1UNIONSELECT column1, column2 FROM table2b. 交集JOINSELECT * FROM table1 AS a JOIN table2 b ON

資料庫查詢語句中的連線連線

內連線:指連線結果僅包含符合連線條件的行,參與連線的兩個表都應該符合連線條件。 外連線:連線結果不僅包含符合連線條件的行同時也包含自身不符合條件的行。   外連線包括:左外連線、右外連線和全外連線。     左外連線:左邊表資料行全部保留,右邊表保留符合連線條件的行。     右外連線:右邊表資料行全部保留,

sql的執行順序連線注意點

select date(oi.pay_time) as event_date, count(distinct oi.device_id) as uv, count(*) as order_total, (select plat