mysql 多表混全_mysql--淺談多表查詢1

這是對自己學習燕十八老師mysql教程的總結,非常感謝燕十八老師。

依賴軟件:mysql5.6

系統環境:win

連接查詢

在談連接查詢之前我們需要對數學上的笛卡爾積有一定的了解

現在有兩個集合m和n

m = (m1,m2,.....mx)

n =(n1,n2,.....ny)

m*n得到的笛卡爾積有多少個元素?

答:m*n有x*y個元素

連接查詢有以下類型

1、左連接

2、右連接

3、內連接

連接查詢的作用

從2張或多張表中取出有關聯的數據

3種連接查詢的詳細說明

1、左連接

A left join B on 條件;

這樣形成了一個結果集,可以看成一張表 設為C

C表有A,B中的所有列;可以做所有表的操作

考慮到兼容問題和理解上的容易程度都推薦用左連接

# 語法Select查詢項from表名left join 表名 on 表名.列名 =表名.列名

# 我是這樣理解左連接的:左表不動,右表來匹配

# 示例

# 用左連接取出兩表cat_id 對應的cat_nameselectgoods_id,goods.cat_id,category.cat_id,cat_name,goods_namefromgoodsleft join category on goods.cat_id=category.cat_id;

2、右連接

左右連接可以互換

A left join B <==> B right join A

A?right?join B on 條件;

這樣形成了一個結果集,可以看成一張表 設為C

C表有A,B中的所有列;可以做所有表的操作

# 語法Select查詢項from表名right join 表名 on 表名.列名 =表名.列名

# 我是這樣理解右連接的:右表不動,左表來匹配

# 示例

# 用右連接取出兩表cat_id 對應的cat_nameselectgoods_id,goods.cat_id,category.cat_id,cat_name,goods_namefromcategoryright join goods on category.cat_id=goods.cat_id;

3、內連接

B inner join A on 條件;

這樣形成了一個結果集,可以看成一張表 設為C

C表有A,B中的所有列;可以做所有表的操作

# 語法Select查詢項from表名inner join 表名 on 表名.列名 =表名.列名

# 我是這樣理解內連接的:右左連接的交集

# 示例

# 用內連接取出兩表cat_id 對應的cat_nameselectgoods_id,goods.cat_id,category.cat_id,cat_name,goods_namefromgoodsinner join category on category.cat_id=goods.cat_id;

小練習

要求:

Match的hostTeamID與guestTeamID都與Team中的teamID關聯

查出 2006-6-1 到2006-7-1之間舉行的所有比賽,并且用以下形式列出:

拜仁 2:0 不來梅 2006-6-21

建表時特別主要match是mysql的關鍵字

selectt1.teamName,match_Result,t2.teamName,match_Timefrommatch1left join Team ast1on match1.hostTeamID=t1.teamIDleft join Team ast2on match1.guestTeamID =t2.teamIDwhere match_Time between '2006-06-01 and'2006-07-01';

聯合查詢

union查詢

使用條件:只要列數一樣即可合并(唯一要求)

語法:

sql1?union?sql2?表操作

union對重復行的處理:union會去重,union all 不去重復

# 示例1

# 用union取出第4個欄目的商品,第5個欄目的商品,并按價格升序排列select cat_id,shop_price,goods_name from goods where cat_id=4

union

select cat_id,shop_price,goods_name from goods where cat_id=5

order by shop_price asc;

內層的order by 如果沒有影響結果集的結果則將被優化過濾掉

# 示例2

# 用union查出第三個欄目下價格前三高的商品,和第四個欄目下價格前2高的商品

(select cat_id,shop_price,goods_name fromgoodswhere cat_id=3 order by shop_price desc limit 3)union(select cat_id,shop_price,goods_name fromgoodswhere cat_id=4 order by shop_price desc limit 2);

小練習

要求:

將兩張結構一樣的表相同id的值相加,返回所有id和值

# 第一步 將兩表合并成一張表,即表cselect id,num froma

union allselect id,num fromb

# 第二步對表c from型子查詢操作,select id,sum(num) asnumfrom (select id,num froma

union allselect id,num from b) asc

group by id;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396427.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396427.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396427.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鼠標固定在屏幕中間_無線電競黑科技,雷柏VT950Q游戲鼠標評測

雷柏作為目前小有聲譽的PC外設品牌&#xff0c;其定位高性能游戲領域的VT系列產品&#xff0c;想必大家也比較熟悉了。VT系列的產品除了有超強的性能以及出色的設計感&#xff0c;同時還都是性價比非常高的產品&#xff0c;即便是采用了旗艦級傳感器&#xff0c;定位最為高端的…

談論源碼_5,000名開發人員談論他們的薪水

談論源碼Let’s dive into the most interesting results from the O’Reilly 2016 Salary Survey of 5,000 developers (which excluded managers and students).讓我們來看看OReilly 2016年薪金調查對5,000名開發人員(其中不包括經理和學生)最有趣的結果。 性別工資差距是真…

WebSnapshotsHelper(HTML轉換為圖片)

1 /// <summary>2 /// WebBrowser Url生成圖片3 /// HTML轉圖片4 /// </summary>5 public class WebSnapshotsHelper6 {7 Bitmap m_Bitmap;8 string m_Url;9 int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth,…

兩個多項式相乘求解系數數組算法

題目描述&#xff1a; 給出兩個多項式&#xff0c;最高次冪分別為n和m&#xff0c;求解這兩個系數相乘得到的系數數組。 分析&#xff1a; 最高次冪如果是m和n&#xff0c;那么他們相乘得到的系數數組的最高次冪一定是nm&#xff0c;對于其他的系數&#xff0c;不妨設a[],b[]是…

synchronized 和 reentrantlock 區別是什么_JUC源碼系列之ReentrantLock源碼解析

目錄ReentrantLock 簡介ReentrantLock 使用示例ReentrantLock 與 synchronized 的區別ReentrantLock 實現原理ReentrantLock 源碼解析ReentrantLock 簡介ReentrantLock 是 JDK 提供的一個可重入的獨占鎖&#xff0c;獨占鎖&#xff1a;同一時間只有一個線程可以持有鎖可重入&am…

gulp 和npm_為什么我離開Gulp和Grunt去看npm腳本

gulp 和npmI know what you’re thinking. WAT?! Didn’t Gulp just kill Grunt? Why can’t we just be content for a few minutes here in JavaScript land? I hear ya, but…我知道你在想什么 WAT &#xff1f;&#xff01; 古爾普不是殺死了咕unt嗎&#xff1f; 為什么…

mysql8.0遞歸_mysql8.0版本遞歸查詢

1.先在mysql數據庫添加數據DROP TABLE IF EXISTS dept;CREATE TABLE dept (id int(11) NOT NULL,pid int(11) DEFAULT NULL,name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,date datetime(0) DEFAULT NULL,PRIMARY KEY (id) USING BTREE) ENGINE…

js 輪播插件

flexslider pc插件 個人用過flickerplate 移動端插件 個人用過個人覺得比較好的移動端插件swiper http://www.swiper.com.cn/ 用過個人覺得比較好的pc端插件待定

計算機中的字符編碼

字符編碼 什么是計算機編碼 計算機只能處理二進制的數據&#xff0c;其它的數據都要進行轉換&#xff0c;但轉換必須要有一套字符編碼(是字符與二進制的一個對應關系)。常用的字符&#xff1a;a-z、0-9、其它的符號等&#xff0c;計算機也不能直接處理。 &#xff08;字符編碼類…

致力微商_致力于自己。 致力于公益組織。

致力微商by freeCodeCamp通過freeCodeCamp 致力于自己。 致力于公益組織。 (Commit to Yourself. Commit to a Nonprofit.) In case you missed it, our October Summit was jam-packed with several big announcements about our open source community.如果您錯過了它&#…

應急照明市電檢測_應急照明如何供電? 如何接線? 圖文分析!

對于大部分剛接觸建筑電氣設計的工作者來說&#xff0c;應急照明的強啟原理一直都是很頭疼的問題。由于不知道應急照明的強啟原理&#xff0c;所以&#xff0c;應急燈具應該用多少根線&#xff0c;其實也就無從談起。下面以文字和圖片結合的方式來說明應急燈怎么接線的&#xf…

win10網速慢

升級到win10之后發現網速特別慢&#xff0c;搜了下&#xff0c;網上的解決辦法果然好使&#xff0c;按照如下操作即可。 返回桌面&#xff0c;按WINR鍵組合&#xff0c;運行gpedit.msc 打開組策略 依次展開管理模板-》網絡-》QoS數據計劃程序-》限制可保留寬帶&#xff0c;雙擊…

ubuntu安裝nodejs

下載nodejs https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.gz 解壓 tar -zxvf node-v4.6.0-linux-x64.tar.gz 移動到/opt/下 mv node-v4.6.0-linux-x64 /opt/ 創建鏈接 ln -s /opt/node-v4.6.0-linux-x64/bin/node /usr/local/bin/node 轉載于:https://www.cnblog…

android實用代碼

Android實用代碼七段&#xff08;一&#xff09; 前言 這里積累了一些不常見確又很實用的代碼&#xff0c;每收集7條更新一次&#xff0c;希望能對大家有用。 聲明 歡迎轉載&#xff0c;但請保留文章原始出處:)     博客園&#xff1a;http://www.cnblogs.com 農民伯伯&…

mysql 全文本檢索的列_排序數據列以檢索MySQL中的最大文本值

為此&#xff0c;您可以將ORDER BY與一些聚合函數right()一起使用。讓我們首先創建一個表-create table DemoTable1487-> (-> StudentCode text-> );使用插入命令在表中插入一些記錄-insert into DemoTable1487 values(560);insert into DemoTable1487 values(789);in…

關于長壽_FreeCodeCamp可以幫助您更長壽

關于長壽by Christopher Phillips克里斯托弗菲利普斯(Christopher Phillips) 免費代碼營可能幫助您長壽 (Free Code Camp Might Help You Live Longer) Since I started my web development journey with Free Code Camp, I’ve felt more awake, more alert, and able to pro…

python世界你好的輸出便攜電源適配器_65W PD輸出,Thinkplus USB-C便攜電源適配器(PA65)開箱評測...

包裝盒底蓋面為紅色&#xff0c;標注了產品的相關參數&#xff1a;型號&#xff1a;PA65&#xff1b;輸入&#xff1a;100V-240V~50/60Hz 1.5A&#xff1b;輸出&#xff1a;5V/3A、9V/3A、12V/3A、15V/3A、20V/3.25A&#xff1b;制造商&#xff1a;南京博蘭得電子科技有限公司&…

歸并排序與逆序對

在刷題的過程中碰到了關于無序序列的逆序對統計的問題。 直接暴力會超時&#xff0c;然后搜索了一下算法&#xff0c;發現可以通過歸并排序的思想來做到這個統計的過程。看代碼的時候&#xff0c;不知道自己的理解力不夠還是不熟悉別人的代碼&#xff0c;反正是看不懂。無奈之下…

c#獲取pdf文件頁數

引用命名空間&#xff1a;using iTextSharp.text.pdf; string filePath Server.MapPath("/upload/123.pdf"); //文件的物理路徑PdfReader reader new PdfReader(filePath);int iPageNum reader.NumberOfPages; //文件頁數reader.Close();Response.Write("文件…

VS2015 Cordova Ionic移動開發(五)

一、創建側邊菜單和導航項目 1.使用VS創建一個Ionic空項目&#xff0c;同時創建一個Ionic SideMenu和Ionic Tabs項目。將SideMenu和Tabs項目里的templates和js文件合并到空項目里&#xff0c;修改js對應的代碼即可。完整項目工程如下&#xff1a; 2.App.js代碼修改如下&#xf…