MySQL聯(lián)合查詢實(shí)現(xiàn)方法詳解
聯(lián)合查詢簡(jiǎn)單說(shuō) 就是將兩次查詢合并在一起
例如 我們這里有一個(gè)用戶表

我們先編寫(xiě)一段SQL
select name from staff where age > 21;
查詢年齡大于21的 輸出結(jié)果如下

然后我們?cè)賹?xiě)一段sql
select name from staff where status =1;
查詢 status 狀態(tài)字段等于1 的 輸出效果如下

然后我們可以二合一一下
select name from staff where age > 21 union all select name from staff where status =1;
輸出結(jié)果如下

這是 我們兩段sql就二合一了
但我發(fā)現(xiàn) 因?yàn)閺埲齼蓚€(gè)條件都達(dá)到了 所以他被查詢出了兩次
如果想去重 我們只需要將 all去掉
參考代碼如下
select name from staff where age > 21 union select name from staff where status =1;
查詢結(jié)果如下

這樣就完成去重了
但現(xiàn)在 我們上下 字段列表查的都是 name
如果我們將代碼改成這樣
select * from staff where age > 21 union select name from staff where status =1;
一個(gè)就查name 一個(gè)查全部 *
但這樣就報(bào)錯(cuò)了

我們將兩個(gè)都改成 *
select * from staff where age > 21 union select * from staff where status =1;

這樣就可以查到了
說(shuō)明 聯(lián)合查詢 多次查詢的字段列表必須是一樣的
到此這篇關(guān)于MySQL聯(lián)合查詢實(shí)現(xiàn)方法詳解的文章就介紹到這了,更多相關(guān)MySQL聯(lián)合查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
批量清除128組節(jié)點(diǎn)db上面過(guò)期的binlog釋放磁盤空間實(shí)現(xiàn)思路
在 一臺(tái)db跳轉(zhuǎn)機(jī)上面, 寫(xiě)一個(gè)腳本,訪問(wèn)slave,遠(yuǎn)程獲取正在復(fù)制的master上面的binlog位置, 然后再遠(yuǎn)程去purge master上面的binlog2013-06-06
推薦沒(méi)有虛擬主機(jī)的小巧的Mysql數(shù)據(jù)庫(kù)備份腳本(PHP)
推薦沒(méi)有虛擬主機(jī)的小巧的Mysql數(shù)據(jù)庫(kù)備份腳本(PHP)...2007-07-07
MySQL 8.0.13設(shè)置日期為0000-00-00 00:00:00時(shí)出現(xiàn)的問(wèn)題解決
這篇文章主要介紹了MySQL 8.0.13設(shè)置日期為0000-00-00 00:00:00時(shí)出現(xiàn)的問(wèn)題解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
解析數(shù)據(jù)庫(kù)分頁(yè)的兩種方法對(duì)比(row_number()over()和top的對(duì)比)
本篇文章是對(duì)數(shù)據(jù)庫(kù)分頁(yè)的兩種方法對(duì)比(row_number()over()和top的對(duì)比)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解)
這數(shù)據(jù)庫(kù)應(yīng)用是一個(gè)應(yīng)用系統(tǒng)不可或缺的部分,關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用大同小異,這里選擇MySQL作為數(shù)據(jù)庫(kù)平臺(tái)。下面通過(guò)本文給大家介紹關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解),需要的朋友可以參考下2017-06-06

