1. 程式人生 > >內連線、左外連線、右外連線、全外連線、交叉連線(CROSS JOIN)-----小知識解決大資料攻略

內連線、左外連線、右外連線、全外連線、交叉連線(CROSS JOIN)-----小知識解決大資料攻略

       早就聽說了內連線與外連線,以前檢視中使用過、這次自考也學習了,只是簡單理解,現在深入探究學習(由於上篇部落格的出現)與實踐:

概念

關鍵字: 左右連線 資料表的連線有:

1、內連線(自然連線): 只有兩個表相匹配的行才能在結果集中出現

2、外連線: 包括 (1)左外連線(左邊的表不加限制) (2)右外連線(右邊的表不加限制) (3)全外連線(左右兩表都不加限制)

3、自連線(連線發生在一張基表內)

例項

以下是自己通過小例項來深刻的理解,以免混淆

 我有兩張簡單的資訊表來說明問題

test1:

test2:

交叉連線(CROSS JOIN)也叫做笛卡爾積

SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age
FROM         dbo.test1 CROSS JOIN
                      dbo.test2


內連線

SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age
FROM         dbo.test1  inner JOIN dbo.test2  on test1.name =test2.name2


左外連線

SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age
FROM         dbo.test1  left JOIN dbo.test2  on test1.name =test2.name2


右外連線

SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age
FROM         dbo.test1  right JOIN dbo.test2  on test1.name =test2.name2

全外連線

SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age
FROM         dbo.test1  full outer JOIN dbo.test2  on test1.name =test2.name2



總結

       通過這幾種資料的關係可以查詢自己想要的資料不用太拘於主外來鍵了(以前沒有主外來鍵就不會查詢有關係的資料了),這些知識看似簡單,但是在大型資料的分析與使用中,可以簡化我們的資料邏輯,提高我們的查詢效率。

相關推薦

連線連線連線連線交叉連線CROSS JOIN-----知識解決資料

       早就聽說了內連線與外連線,以前檢視中使用過、這次自考也學習了,只是簡單理解,現在深入探究學習(由於上篇部落格的出現)與實踐: 概念 關鍵字: 左右連線 資料表的連線有: 1、內連線(

Oracle 連線inner join連線outer join連線full join

http://blog.itpub.net/30175262/viewspace-1472290/之前沒有用過 full outer join,第一次用,學習一下Student表Color表Oracle中的連線可分為,內連線(inner join)、外連線(outer joi

值和值引用與值引用2

表示式可以分為以下值類別之一: 左值Lvalue:如果表示式不是const限定的,則表示式可以出現在賦值表示式的左側。 x值:要過期的右值引用。 右值(Prvalue) rvalue:非xvalue表示式,僅出現在賦值表示式的右側。Rvalues包括xvalues和

連線inner join連線(outer join)小結

mySQL包含兩種聯接,分別是內連線(inner join)和外連線(out join),但我們又同時聽說過左連線,交叉連線等術語,本文旨在總結這些術語之間的關係。 1. 內連線 首先說明內連線的一個重要性質:內連線查詢結果與表的順序無關 (當然順序可

連線INNER JOIN

內連線組合兩張表,並且基於兩張表中的關聯關係來連線它們。使用內連線需要指定表中哪些欄位組成關聯關係,並且需要指定基於什麼條件進行連線。內連線的語法如下: INNER JOIN table_name ON condition 其中table_name 為被關聯的表名,condition則為進行連線時

連線LEFT JOIN例項

原始的表 (用在例子中的): “Persons” 表: Id_P LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Th

SQL的各種連接cross joininner joinfull join)的用法理解

選擇 join 返回 要求 重復 元組 連接 相同 where SQL中的連接可以分為內連接,外連接,以及交叉連接 。 1. 交叉連接CROSS JOIN 如果不帶WHERE條件子句,它將會返回被連接的兩個表的笛卡爾積,返回結果的行數等於兩個表行數的乘積; 舉例,下列A、

連線Semi-join

    假設一個場景,需要連線兩個很大的資料集,例如,使用者日誌和 OLTP 的使用者資料。任何一個數據集都不是足夠小到可以快取在 map 作業的記憶體中。可以思考以下問題:如果在資料集的連線操作中,一個數據集中有的記錄

遞迴先序非遞迴層次建立二叉樹並用三序遍歷之C語言

 先序就是直接用遞迴的方法建立,層次使用了輔助陣列,後一種方法我覺得友好多了。 #include "stdio.h" #define MAXSIZE 50 #define TRUE 1 #define FALSE 0 typedef int boo

unity網路實戰開發叢林戰爭-前期知識準備011-c#連線資料庫並實現增刪改查以及sql注入問題

使用工具:VS2015,Mysql使用語言:c#作者:Gemini_xujian參考:siki老師-《叢林戰爭》視訊教程繼上一篇文章內容,這節課講解一下資料庫的前期連線準備以及通過c# 實現資料庫的增刪改擦操作。首先你需要自行安裝Mysql以及它的workbench元件。然後

自然連線NATURAL JOIN

MANAGER_ID DEPARTMENT_ID EMPLOYEE_ID FIRST_NAME   LAST_NAME  EMAIL        PHONE_NUMBER         HIRE_DATE    JOB_ID         SALARY COMMISSION_PCT DEPARTMENT

SQLAlchemy連線的使用full join

今天工作中操作mysql進行統計,需要用到全連線(full join)才能解決問題,但是我們用的SQLAlchemy,用SQLAlchemy快一年了,還真沒用過全連線,mysql中用到過,然後查詢SQLAlchemy的官方文件,並沒有發現相關的函式,只有左右連線

MySQL優化案例---半連線semi join優化方式 導致的查詢效能低下

MySQL V5.6.x/5.7.x SQL查詢效能問題 一 簡單建立一表,並使用儲存過程插入一部分資料CREATE TABLE users (  user_id int(11) unsigned NOT NULL,  user_name varchar(64) DEFAULT NULL,  PRIMARY

Hadoop Mapreduce 連線Join之一:重分割槽連線Repartition join

4.1 連線(Join) 連線是關係運算,可以用於合併關係(relation)。對於資料庫中的表連線操作,你可能已經比較熟悉了。在MapReduce中,連線可以用於合併兩個或多個數據集。例如,使用者基本資訊和使用者活動詳情。使用者基本資訊來自於OLTP資料庫。使用者活動

css+javascript網頁抖動圖示抖動製作教程,輸入抖動命令js執行命令讓網頁抖動起來詳細版

首先我想說關於網頁中做css抖動不難,用js命令也不難,下面我將為大家詳細介紹具體做法。 一、我們要先有個網頁程式碼的基本架構,比如 <!doctype html> <html lang="en"> <head> <meta ch

元素和塊級元素的具體區別是什麼?inline-block是什麼?面試題目

原文地址: https://www.cnblogs.com/iceflorence/p/6626187.html?utm_source=itdadao&utm_medium=referral 一,行內元素與塊級元素的區別: 1.行內元素與塊級元素直觀上的區別二、行內

資料庫中連線連線連線連線連線交叉連線的區別

內連線: 內聯接使用比較運算子根據每個表共有的列的值匹配兩個表中的行。利用內連線可獲取兩表的公共部分的記錄。 又細分為三種: 等值連線: 在連線條件中使用等於號(=)運算子比較被連線列的列值,其查詢結果中列出被連線表中的所有列,包括其中的重複列。 不等值連線: 在

圖解MySQL 連線連線連線連線連線

用兩個表(a_table、b_table),關聯欄位a_table.a_id和b_table.b_id來演示一下MySQL的內連線、外連線( 左(外)連線、右(外)連線、全(外)連線)。 MySQL版本:Server version: 5.6.31 MySQ

圖解MySQL 連線連線連線連線連線……太多了

用兩個表(a_table、b_table),關聯欄位a_table.a_id和b_table.b_id來演示一下MySQL的內連線、外連線( 左(外)連線、右(外)連線、全(外)連線)。 MySQL版本:Server version: 5.6.31 MySQL

連線連線連線交叉連線及其區別

首先建立兩張表A、B。 表A: Aid:int型別,無符號遞增,主鍵 name:varchar型別 表B: Bid:int型別,無符號遞增,主鍵 name:varchar型別 age:int型