欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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;

這個查詢做了以下幾件事

  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)在,我將對這個查詢進行擴寫,包括一些額外的解釋和可能的優(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

因為省沒有所屬的省份,所以可以填寫為null

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

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

在這個表中,結(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)
);

查詢一共有多少個省

  • 查詢省的名稱為“山西省”的所有城市
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é)

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

相關(guān)文章

  • MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error

    MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error

    這篇文章主要介紹了MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 基于mysql中delete的語法別名問題

    基于mysql中delete的語法別名問題

    這篇文章主要介紹了mysql中delete的語法別名問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • MySQL版oracle下scott用戶建表語句實例

    MySQL版oracle下scott用戶建表語句實例

    這篇文章主要給大家介紹了關(guān)于MySQL版oracle下scott用戶建表語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • CentOS6.9下mysql 5.7.17安裝配置方法圖文教程

    CentOS6.9下mysql 5.7.17安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了CentOS6.9下mysql 5.7.17安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • innodb_flush_method取值方法(實例講解)

    innodb_flush_method取值方法(實例講解)

    下面小編就為大家?guī)硪黄猧nnodb_flush_method取值方法(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL基于GTID主從搭建

    MySQL基于GTID主從搭建

    這篇文章主要介紹了MySQL基于GTID主從搭建,文章首先通過xtarbackup來同步數(shù)據(jù)展開文章內(nèi)容詳情,感興趣的小伙伴可以參考一下
    2022-08-08
  • MySQL數(shù)據(jù)庫的多種連接方式及工具

    MySQL數(shù)據(jù)庫的多種連接方式及工具

    本文詳細的介紹了數(shù)據(jù)庫的連接方式及數(shù)據(jù)庫連接的工具,給初學(xué)者分享一些知識,也是學(xué)習(xí)總結(jié),感興趣的小伙伴可以閱讀一下
    2023-03-03
  • mysql 8.0.15 壓縮版安裝圖文教程

    mysql 8.0.15 壓縮版安裝圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.15 壓縮版安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • MySQL InnoDB如何保證事務(wù)特性示例詳解

    MySQL InnoDB如何保證事務(wù)特性示例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL InnoDB如何保證事務(wù)特性的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • mysql 5.7.11 winx64快速安裝配置教程

    mysql 5.7.11 winx64快速安裝配置教程

    這篇文章主要為大家分享了mysql5.7.11 winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-07-07

最新評論