最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL關(guān)聯(lián)關(guān)系查詢方式

 更新時(shí)間:2025年02月06日 10:11:01   作者:jay丿  
文章詳細(xì)介紹了MySQL中如何使用內(nèi)連接和左外連接進(jìn)行表的關(guān)聯(lián)查詢,并展示了如何選擇列和使用別名,文章還提供了一些關(guān)于查詢優(yōu)化的建議,并鼓勵(lì)讀者參考和支持腳本之家

MYSQL關(guān)聯(lián)關(guān)系查詢

關(guān)聯(lián)關(guān)系查詢

首先,讓我們回顧一下你的原始查詢:

SELECT u.*, d.id AS aid, d.name, d.pro, d.city, d.country, d.detail, d.tel AS atel, r.name AS roleName
FROM tb_user u
INNER JOIN tb_address d ON u.id = d.user_id
LEFT JOIN tb_role_user ur ON ur.user_id = u.id
LEFT JOIN tb_role r ON r.id = ur.role_id;

這個(gè)查詢做了以下幾件事

  1. tb_user 表中選擇所有列(u.*)。
  2. 使用內(nèi)連接(INNER JOIN)將 tb_user 表與 tb_address 表關(guān)聯(lián)起來,條件是 tb_user 表的 id 列等于 tb_address 表的 user_id 列。
  3. tb_address 表中選擇特定的列,并為某些列指定別名(如 d.id AS aid)。
  4. 使用左外連接(LEFT JOIN)將結(jié)果集與 tb_role_user 表關(guān)聯(lián)起來,條件是 tb_role_user 表的 user_id 列等于 tb_user 表的 id 列。
  5. 再使用左外連接將上一步的結(jié)果集與 tb_role 表關(guān)聯(lián)起來,條件是 tb_role 表的 id 列等于 tb_role_user 表的 role_id 列。
  6. tb_role 表中選擇 name 列,并為其指定別名 roleName

現(xiàn)在,我將對這個(gè)查詢進(jìn)行擴(kuò)寫,包括一些額外的解釋和可能的優(yōu)化:

-- 選擇用戶及其關(guān)聯(lián)的地址、角色信息
SELECT 
    -- 用戶表的所有列
    u.id AS userId, u.username, u.email, u.password, u.created_at, u.updated_at,
    -- 地址表的特定列及別名
    d.id AS addressId, d.name AS addressName, d.province AS pro, d.city, d.country, d.detail AS addressDetail, d.tel AS addressTel,
    -- 角色名的別名
    r.name AS roleName
FROM 
    tb_user u
    -- 內(nèi)連接:只選擇有地址的用戶
    INNER JOIN tb_address d ON u.id = d.user_id
    -- 左外連接:選擇所有用戶及其可能的角色關(guān)聯(lián)
    LEFT JOIN tb_role_user ur ON u.id = ur.user_id
    -- 再左外連接:選擇所有角色關(guān)聯(lián)及其角色名
    LEFT JOIN tb_role r ON ur.role_id = r.id;

MySQL自關(guān)聯(lián)查詢

定義表areas,結(jié)構(gòu)如下

  • id
  • atitle
  • pid

因?yàn)槭]有所屬的省份,所以可以填寫為null

城市所屬的省份pid,填寫省所對應(yīng)的編號(hào)id

這就是自關(guān)聯(lián),表中的某一列,關(guān)聯(lián)了這個(gè)表中的另外一列,但是它們的業(yè)務(wù)邏輯含義是不一樣的,城市信息的pid引用的是省信息的id

在這個(gè)表中,結(jié)構(gòu)不變,可以添加區(qū)縣、鄉(xiāng)鎮(zhèn)街道、村社區(qū)等信息

  • 創(chuàng)建areas表的語句如下:
create table areas(
id int primary key,
atitle varchar(20),
pid int,
foreign key(pid) references areas(id)
);

查詢一共有多少個(gè)省

  • 查詢省的名稱為“山西省”的所有城市
select city.* from areas as city
inner join areas as province on city.pid=province.id
where province.atitle='山西省';
  • 查詢市的名稱為“廣州市”的所有區(qū)縣
select dis.*,dis2.* from areas as dis
inner join areas as city on city.id=dis.pid
left join areas as dis2 on dis.id=dis2.pid
where city.atitle='廣州市';

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL 5.7.18 免安裝版配置教程

    MySQL 5.7.18 免安裝版配置教程

    這篇文章主要為大家詳細(xì)介紹了MySQL 5.7.18 免安裝版配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • MySQL查詢in操作 查詢結(jié)果按in集合順序顯示

    MySQL查詢in操作 查詢結(jié)果按in集合順序顯示

    MySQL 查詢in操作,查詢結(jié)果按in集合順序顯示的實(shí)現(xiàn)代碼,需要的朋友可以參考下。
    2010-12-12
  • 2026年新手版MySQL數(shù)據(jù)庫備份與恢復(fù)的完整指南

    2026年新手版MySQL數(shù)據(jù)庫備份與恢復(fù)的完整指南

    日常操作中,新手很容易誤刪數(shù)據(jù)庫、誤刪表,或者服務(wù)器故障導(dǎo)致數(shù)據(jù)丟失,一旦丟失很難恢復(fù),而MySQL備份操作簡單,花5分鐘做好備份,后續(xù)無論出現(xiàn)什么問題,都能快速恢復(fù)數(shù)據(jù),避免損失,下面小編就和大家詳細(xì)介紹下新手首先的mysqldump?備份方法吧
    2026-04-04
  • Mac MySQL重置Root密碼的教程

    Mac MySQL重置Root密碼的教程

    安裝MySQL后時(shí)間太長了會(huì)忘記密碼,在這里總結(jié)一下忘記密碼時(shí)如何重置本地MySQL Root密碼。感興趣的朋友跟隨腳本之家一起學(xué)習(xí)吧
    2018-03-03
  • centos7環(huán)境下創(chuàng)建mysql5.6多實(shí)例的方法詳解

    centos7環(huán)境下創(chuàng)建mysql5.6多實(shí)例的方法詳解

    這篇文章主要介紹了centos7環(huán)境下創(chuàng)建mysql5.6多實(shí)例的方法,詳細(xì)分析了centos7創(chuàng)建mysql5.6多實(shí)例的具體步驟、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • mysql添加索引方法詳解(Navicat可視化加索引與sql語句加索引)

    mysql添加索引方法詳解(Navicat可視化加索引與sql語句加索引)

    索引用來快速地尋找那些具有特定值的記錄,如果沒有索引,執(zhí)行查詢時(shí)MySQL必須從第一個(gè)記錄開始掃描整個(gè)表的所有記錄,直至找到符合要求的記錄,表里面的記錄數(shù)量越多,代價(jià)就越高,下面這篇文章主要給大家介紹了關(guān)于mysql添加索引的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 大數(shù)據(jù)小內(nèi)存排序問題如何巧妙解決

    大數(shù)據(jù)小內(nèi)存排序問題如何巧妙解決

    文章介紹了大數(shù)據(jù)小內(nèi)存排序的三種方法:數(shù)據(jù)庫排序、分治法和位圖法,數(shù)據(jù)庫排序簡單但速度慢,對設(shè)備要求高;分治法高效但實(shí)現(xiàn)復(fù)雜;位圖法可讀性差,但存儲(chǔ)空間受限
    2025-01-01
  • 在sql中對兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作

    在sql中對兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作

    這篇文章主要介紹了在sql中對兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 清空mysql 查詢緩存的可行方法

    清空mysql 查詢緩存的可行方法

    mysql對同一條sql進(jìn)行了緩存,在第二次運(yùn)行時(shí), 瞬間就完成了,若要清除緩存,可通過下面的方法來實(shí)現(xiàn)
    2014-07-07
  • MySQL5.5.27安裝圖文教程

    MySQL5.5.27安裝圖文教程

    本文通過圖文并茂的形式給大家介紹了mysql 5.5.27的安裝教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-09-09

最新評(píng)論

九江市| 石家庄市| 定兴县| 都昌县| 巨鹿县| 旬邑县| 万州区| 肥西县| 同仁县| 正阳县| 刚察县| 台安县| 桂东县| 聂荣县| 彭阳县| 石柱| 哈尔滨市| 平陆县| 潜山县| 忻州市| 楚雄市| 绵阳市| 东平县| 道孚县| 乌兰察布市| 临泉县| 赤水市| 容城县| 汶上县| 彭山县| 靖远县| 广水市| 洛南县| 金昌市| 廊坊市| 蓬莱市| 新田县| 大英县| 巴南区| 邹平县| 公安县|