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

深入sql多表差異化聯(lián)合查詢的問(wèn)題詳解

 更新時(shí)間:2013年06月05日 15:20:30   作者:  
本篇文章是對(duì)sql多表差異化聯(lián)合查詢的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

本章簡(jiǎn)略講述本人在實(shí)例開發(fā)中遇到的多表查詢的問(wèn)題
其中主要講述
select A.*,B.*,C.* from A,B,C

select A.*,B.*,C.* from 表A inner join 表B on A.id=B.id inner join 表C on A.code=C.code
的區(qū)別

最近遇到一個(gè)這樣的項(xiàng)目需求——要求頁(yè)面集合顯示三個(gè)關(guān)聯(lián)表的信息。
由于實(shí)際項(xiàng)目里出現(xiàn)的字段比較多,現(xiàn)在簡(jiǎn)化說(shuō)明如下:
table A 含有字段 UserName,CardCode,ItamCode
table B 含有字段 CardCode,CardName
table C 含有字段 ItamCode,ItamName

其中界面要在一個(gè)數(shù)據(jù)集里同時(shí)出現(xiàn)UserName,CardName,ItamName
話說(shuō)雖然學(xué)過(guò)SQL 內(nèi)聯(lián),外聯(lián)的問(wèn)題,但是以前的項(xiàng)目基本出現(xiàn)的都是兩個(gè)表的關(guān)聯(lián)實(shí)現(xiàn),現(xiàn)在是第一次用到超過(guò)兩個(gè)表的關(guān)聯(lián)實(shí)現(xiàn)問(wèn)題。在百度找了一下資料,才發(fā)現(xiàn)原來(lái)基本原理是一樣的。哈,本人去年才入職,經(jīng)驗(yàn)不足,大神們,請(qǐng)別見笑哈!
呃,如果讀者暫時(shí)還不熟悉SQL基本內(nèi)聯(lián),外聯(lián)的相關(guān)知識(shí),請(qǐng)自覺找度娘面壁去哈,筆者在這里不熬述了。長(zhǎng)話短說(shuō),現(xiàn)在進(jìn)入正題……

發(fā)現(xiàn)要實(shí)現(xiàn)上面的功能有兩種方法,分別是
select A.UserName,B.CardName,C.ItamName from A,B,C

select A.UserName,B.CardName,C.ItamName from 表A inner join 表B on A.CardCode=B.CardCode inner join 表C on A.ItamCode=C.ItamCode
(如果字段是差異化的話,可以略寫表名)

就上面的語(yǔ)法來(lái)說(shuō),其實(shí)兩種實(shí)現(xiàn)方法的效果是一樣的,但如果真要較真細(xì)說(shuō)優(yōu)劣的話,還是第二種實(shí)現(xiàn)方法比較實(shí)用的。
用inner join(全外聯(lián))的寫法, 不僅可以按照實(shí)際需求自由轉(zhuǎn)化left join(左外聯(lián))和right join(右外聯(lián)),而且注明了結(jié)合的順序, 特別是支持了SQL文優(yōu)化的方便。

還有一個(gè)就是說(shuō)當(dāng)我某個(gè)字段可以為null的時(shí)候,第一種查詢方法得出的值其實(shí)是不完全的。比如說(shuō)我上面的例子中當(dāng)table C 的ItanName 并非必填的時(shí)候,只能通過(guò)左外連接(left join)來(lái)實(shí)現(xiàn)我們需要的效果。
有興趣的同學(xué)可以自己操作一下,驗(yàn)證下兩種方法的不同。

相關(guān)文章

  • MySQL 數(shù)據(jù)類型 詳解

    MySQL 數(shù)據(jù)類型 詳解

    MySQL 的數(shù)值數(shù)據(jù)類型可以大致劃分為兩個(gè)類別,一個(gè)是整數(shù),另一個(gè)是浮點(diǎn)數(shù)或小數(shù)。許多不同的子類型對(duì)這些類別中的每一個(gè)都是可用的,每個(gè)子類型支持不同大小的數(shù)據(jù),并且 MySQL 允許我們指定數(shù)值字段中的值是否有正負(fù)之分或者用零填補(bǔ)。
    2009-10-10
  • MySQL驗(yàn)證用戶權(quán)限的方法

    MySQL驗(yàn)證用戶權(quán)限的方法

    這篇文章主要介紹了MySQL驗(yàn)證用戶權(quán)限的方法,需要的朋友可以參考下
    2015-11-11
  • clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式

    clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式

    這篇文章主要介紹了clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • mysql5.7.17安裝使用圖文教程

    mysql5.7.17安裝使用圖文教程

    這篇文章主要為大家詳細(xì)介紹了MySql安裝與使用圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • mysql建立自定義函數(shù)的問(wèn)題

    mysql建立自定義函數(shù)的問(wèn)題

    由于這幾天在寫mysql存儲(chǔ)過(guò)程且發(fā)現(xiàn)程序體積越來(lái)越龐大,于是嘗試使用mysql的函數(shù)
    2011-04-04
  • Mysql數(shù)據(jù)庫(kù)中的redo?log?寫入策略和binlog?寫入策略

    Mysql數(shù)據(jù)庫(kù)中的redo?log?寫入策略和binlog?寫入策略

    這篇文章主要介紹了Mysql?redo?log?寫入策略和binlog?寫入策略,通過(guò)本文學(xué)習(xí)可以了解redo?log的寫入策略是由InnoDB提供了innodb_flush_log_at_trx_commit參數(shù),binlog的寫入策略,write?和fsync的時(shí)機(jī),是由參數(shù)sync_binlog控制的,需要的朋友可以參考下
    2022-04-04
  • MySQL配置主從服務(wù)器(一主多從)

    MySQL配置主從服務(wù)器(一主多從)

    本文主要介紹了MySQL配置主從服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MySQL復(fù)制機(jī)制原理講解

    MySQL復(fù)制機(jī)制原理講解

    在本篇文章中小編通過(guò)詼諧幽默的語(yǔ)言圖文給大家講述了MySQL復(fù)制機(jī)制的原理及相關(guān)知識(shí)點(diǎn),需要的朋友們參考下。
    2019-05-05
  • MySQL中文亂碼問(wèn)題解決方案

    MySQL中文亂碼問(wèn)題解決方案

    這篇文章主要介紹了MySQL中文亂碼問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Linux下mysql 8.0.25 安裝配置方法圖文教程

    Linux下mysql 8.0.25 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux下mysql 8.0.25 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論