Mysql多表查詢(兩張獨立表,一張關系表)

一、數據庫設計
1、三個數據表長這樣
其中user表記錄用戶信息,cat主要記錄男女性別,mete表是用戶id和性別id的對應關系
2、具體數據如下
二、查詢目標
查詢出所有性別為“男”的用戶的“姓名”,如下記錄兩種不同形式的查詢
1、單純的條件查詢
SQL:
select user.value from user where user.uid in (select mete.uid from mete where mete.cid=1) 

?

結果:
語句解釋:
先使用select?mete.uid?from?mete?where?mete.cid=1語句在mete表中,查找到所有“男”的uid(這里默認我們已經知道cid=1代表男性),再通過條件查詢,與上句查詢結果進行比對,從而顯示出user表中的所有男性名字。
2、使用連接查詢,條件顯示所有用戶的姓名和對應的性別
SQL:
select U.value,C.value from mete as M join cat as C on C.cid=M.cid join user as U on U.uid=M.uid 

?

結果:
語句解釋:使用到了內聯查詢,只輸出包含連接條件的數據行,從左往右看,可以理解為先將mete表與cat表連接,通過條件C.cid=M.cid,形成了一個性別類型匹配的新表,新表再和user表連接,通過U.uid=M.uid ,形成了一個姓名匹配的表,此時這三張表就聯合形成了一個性別類型、名稱類型一一對應的表,長得是這樣,
再通過select語句,選出了我們想要的姓名和性別對應的表。
注:如上是內聯查詢,只輸出滿足所有條件的數據,也可以通過外聯查詢,不對數據過濾,只對數據組合的新表
SQL:
select * from mete as M left join cat as C on C.cid=M.cid left join user as U on U.uid=M.uid 
語句解釋:在join前加left/right,則可以使用外聯查詢,不同的是連接的表組和后輸出左表(右表)中不符合條件的記錄,如下

?

轉載于:https://www.cnblogs.com/tilv37/p/5199139.html

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

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

相關文章

STM32 時鐘系統

STM32時鐘系統的基本概念 概念及意義 (1)概念:時鐘系統是由振蕩器(信號源)、定時喚醒器、分頻器等組成的電路。常用的信號源有晶體振蕩器和RC振蕩器。 (2)意義:時鐘對數字電路而言非…

【轉載】性能測試淺談

本文主要針對WEB系統的性能測試。不涉及具體的執行操作,只是本人對性能測試的一點理解和認識。 性能測試的目的,簡單說其實就是為了獲取待測系統的響應時間、吞吐量、穩定性、容量等信息。而發現一些具體的性能相關的缺陷(如內存溢出、并發處…

SystemInit時鐘系統初始化函數剖析

SystemInit()函數: void SystemInit (void) {/* Set HSION bit */RCC->CR | (uint32_t)0x00000001;//把內部的HSI RC(高速時鐘)打開#ifndef STM32F10X_CLRCC->CFGR & (uint32_t)0xF8FF0000;//這一句不會執行…

火狐表格錯亂兼容性問題

對于某一單元行需要顯示時,使用CSS display:block屬性,不需要顯示時使用display:none屬性,在IE瀏覽器中顯示正常,沒有任何問題,但是當用Firefox瀏覽時卻出現了布局錯亂的問題,這是為什么呢? 本文…

docker ps命令詳解 列出運行中的容器

docker ps命令詳解 列出運行中的容器 使用docker ps命令即可列出運行中的容器,執行該命令后,會出現如下7列表格 CONTAINER_ID 表示容器ID IMAGE 表示鏡像名稱 COMMAND 表示啟動容器時運行的命令 CREATED …

Lattice 的 Framebuffer IP核使用調試筆記之datasheet筆記

本文由遠航路上ing 原創,轉載請標明出處。 學習使用以及調試Framebuffer IP 核已經有一段時間了,調試的時候總想記錄些東西,可是忙的時候就沒有時間來寫,只有先找個地方記錄下,以后再總結。所以找這個時間好好的記錄學…

Systick滴答定時器寄存器、delay()延時函數、SysTick_Config函數

SysTick定時器 SysTick定時器,是一個簡單的定時器,對于CM3、CM4內核的芯片都有SysTick定時器。SysTick 是一個 24 位的倒計數定時器,當計數到 0 時,將從RELOAD 寄存器中自動重裝載定時初值,開始新一輪計數。只要不把它…

查看docker容器日志

1:實時查看docker容器id為 02c5ac132ee5 的最后10行日志 docker logs -f -t --tail 10 02c5ac132ee5 2:查看指定時間后的日志,只顯示最后100行: docker logs -f -t --since"2020-02-14" --tail100 d7db22166a0a 3:查看最近20分鐘的…

Web UI 自動化測試環境搭建 (轉載自51測試天地第三十九期上)

1. 安裝 Python 2.7 并設置系統環境變量 2. 下載并安裝 python setuptools Easily download, build, install, upgrade, and uninstall Python packages https://pypi.python.org/pypi/setuptools#installation-instructions 2.1 找到ez_setup.py,點擊右鍵--目標另存…

STM32F1 端口復用、端口(部分和完全)重映射

端口復用功能 STM32 有很多的內置外設(比如:串口、ADC、DAC等是獨立的模塊和內核連接在一起),這些外設的外部引腳都是與 GPIO 復用的。也就是說,一個 GPIO如果可以復用為內置外設的功能引腳,那么當…

docker啟動容器后容器狀態為Exited (137) 5 seconds ago

1:因為容器里的運行的代碼報錯了,然后容器 Exited (1) 3 seconds ago 了,通過 docker logs -f container_id 能看到哪里錯了 容器樁體為exited,說明容器已經退出停止 先查看查看鏡像id ps images 在后臺運行一個容器 為了保證提…

ReflectionClass與Closure

<?php /*** Class A*/ class A{}$obj new ReflectionClass(A); var_export($obj.PHP_EOL); 類后面加上PHP_EOL會把當前類的詳細接口文檔打印出來。 ReflectionClass 可以利用這個動態創建類&#xff0c;動態使用類方法參數。 try{ //如果存在控制器名字的類 if(class_exis…

STM32中斷優先級的管理(NVIC)

STM32 NVIC 中斷優先級管理 CM3 內核支持 256 個中斷&#xff0c;其中包含了 16 個內核中斷和 240 個外部中斷&#xff0c;并且具有 256級的可編程中斷設置。STM32 并沒有使用 CM3 內核的全部東西&#xff0c;而是只用了它的一部分。STM32 有 84 個中斷&#xff0c;包括 16 個…

docker修改容器名字

查看一下容器的名字 這個laughing_elion是下載es時候默認的名字 修改容器名字 docker rename 容器原來名 要改為的名字 最后可以看到容器名已經修改成功

STM32 串行通信原理

處理器與外部設備通信的兩種方式&#xff1a; 并行通信 傳輸原理&#xff1a;數據各個位同時傳輸。優點&#xff1a;速度快缺點&#xff1a;占用引腳資源多 串行通信 傳輸原理&#xff1a;數據按位順序傳輸。優點&#xff1a;占用引腳資源少缺點&#xff1a;速度相對較慢 …

linus下centos7防火墻設置

CentOS7 默認使用firewalld防火墻&#xff0c;如果想換回iptables防火墻&#xff0c;可關閉firewalld并安裝iptables。 1:安裝firewalld服務 yum install firewalld 2、firewalld的基本使用 啟動&#xff1a; systemctl start firewalld &#xff08;關閉后顯示notrunning&a…

串口通信寄存器/庫函數配置、實例編寫

常用的串口相關寄存器 USART_SR狀態寄存器USART_DR數據寄存器USART_BRR波特率寄存器 串口操作相關庫函數&#xff08;省略入口參數&#xff09;&#xff1a; void USART_Init(); //串口初始化&#xff1a;波特率&#xff0c;數據字長&#xff0c;奇偶校驗&#xff0c;硬件流…

使用docker安裝Mongodb

下載mongo3.2的docker鏡像&#xff1a; docker pull mongo:3.2 使用docker命令啟動&#xff1a; docker run -p 27017:27017 --name mongo \ -v /mydata/mongo/db:/data/db \ -d mongo:3.2 查看已經成功啟動

移動端meta標簽

現在的手機或平板電腦等移動設備上的瀏覽器默認都有雙擊放大的設置&#xff0c;如何阻止雙擊放大&#xff1f;user-scalableno <!-- 禁止縮放 --> <meta name”viewport” content”widthdevice-width,initial-scale1.0,maximum-scale1.0,user-scalableno”> <!…

正點原子stm32--串口通信實驗講解里關于USART_RX_STA的問題與思考

這篇博文講的挺詳細的可以參考以下&#xff1a; USART_RX_STA詳解