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

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

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

本章簡(jiǎn)略講述本人在實(shí)例開發(fā)中遇到的多表查詢的問題
其中主要講述
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)目需求——要求頁面集合顯示三個(gè)關(guān)聯(lián)表的信息。
由于實(shí)際項(xiàng)目里出現(xiàn)的字段比較多,現(xiàn)在簡(jiǎn)化說明如下:
table A 含有字段 UserName,CardCode,ItamCode
table B 含有字段 CardCode,CardName
table C 含有字段 ItamCode,ItamName

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

就上面的語法來說,其實(shí)兩種實(shí)現(xiàn)方法的效果是一樣的,但如果真要較真細(xì)說優(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è)就是說當(dāng)我某個(gè)字段可以為null的時(shí)候,第一種查詢方法得出的值其實(shí)是不完全的。比如說我上面的例子中當(dāng)table C 的ItanName 并非必填的時(shí)候,只能通過左外連接(left join)來實(shí)現(xiàn)我們需要的效果。
有興趣的同學(xué)可以自己操作一下,驗(yàn)證下兩種方法的不同。

相關(guān)文章

  • MySQL的集群配置的基本命令使用及一次操作過程實(shí)錄

    MySQL的集群配置的基本命令使用及一次操作過程實(shí)錄

    這篇文章主要介紹了MySQL的集群配置過程中的基本命令使用,實(shí)錄中給出了兩個(gè)節(jié)點(diǎn)連接的例子,更多的話同理:)需要的朋友可以參考下
    2015-11-11
  • MySQL 5.0.96 for Windows x86 32位綠色精簡(jiǎn)版安裝教程

    MySQL 5.0.96 for Windows x86 32位綠色精簡(jiǎn)版安裝教程

    這篇文章主要介紹了MySQL 5.0.96 for Windows x86 32位綠色精簡(jiǎn)版安裝教程,需要的朋友可以參考下
    2017-10-10
  • 關(guān)于case when語句的報(bào)錯(cuò)問題詳解

    關(guān)于case when語句的報(bào)錯(cuò)問題詳解

    SQL CASE 表達(dá)式是一種通用的條件表達(dá)式,類似于其它語言中的 if/else 語句,下面這篇文章主要給大家介紹了關(guān)于case when語句的報(bào)錯(cuò)問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • Mac?Homebrew安裝的MySQL無法遠(yuǎn)程登錄的解決

    Mac?Homebrew安裝的MySQL無法遠(yuǎn)程登錄的解決

    這篇文章主要介紹了Mac?Homebrew安裝的MySQL無法遠(yuǎn)程登錄的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • mysql修改表結(jié)構(gòu)方法實(shí)例詳解

    mysql修改表結(jié)構(gòu)方法實(shí)例詳解

    這篇文章主要介紹了mysql修改表結(jié)構(gòu)方法,以實(shí)例形式較為詳細(xì)的分析了mysql修改表結(jié)構(gòu)的具體方法與相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • MySQL與PHP的基礎(chǔ)與應(yīng)用專題之索引

    MySQL與PHP的基礎(chǔ)與應(yīng)用專題之索引

    MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL?AB?公司開發(fā),屬于?Oracle?旗下產(chǎn)品。MySQL?是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇從索引開始
    2022-02-02
  • MySQL虛擬列的使用示例

    MySQL虛擬列的使用示例

    虛擬列是MySQL中的一種特殊列,它不存儲(chǔ)在表中,而是在查詢時(shí)動(dòng)態(tài)計(jì)算生成,虛擬列可以提高查詢效率、減少存儲(chǔ)需求、確保數(shù)據(jù)一致性、簡(jiǎn)化查詢和保護(hù)敏感數(shù)據(jù),感興趣的可以了解一下
    2024-11-11
  • mysql缺少my.ini文件的解決方法

    mysql缺少my.ini文件的解決方法

    使用的這么長時(shí)間的mysql,有一天我突然需要使用mysql?的配置文件my.ini時(shí)發(fā)現(xiàn)沒有這個(gè)文件并且這個(gè)文件不是被隱藏了,所以本文給大家介紹了mysql缺少my.ini文件的解決方法,需要的朋友可以參考下
    2023-12-12
  • 詳解mysql中if函數(shù)的正確使用姿勢(shì)

    詳解mysql中if函數(shù)的正確使用姿勢(shì)

    這篇文章主要介紹了詳解mysql中if函數(shù)的正確使用姿勢(shì),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • MySQL 分表優(yōu)化試驗(yàn)代碼

    MySQL 分表優(yōu)化試驗(yàn)代碼

    我們的項(xiàng)目中有好多不等于的情況。今天寫這篇文章簡(jiǎn)單的分析一下怎么個(gè)優(yōu)化法。
    2010-04-04

最新評(píng)論

花莲县| 芷江| 太谷县| 常德市| 胶州市| 桐乡市| 益阳市| 乌兰县| 宜春市| 陇西县| 宿州市| 寻甸| 阿城市| 林芝县| 余姚市| 东乡县| 安龙县| 望都县| 永城市| 尼玛县| 四平市| 远安县| 屯昌县| 锦屏县| 延安市| 通城县| 怀化市| 离岛区| 普格县| 江阴市| 宿松县| 车险| 凤翔县| 都江堰市| 苗栗县| 海晏县| 当阳市| 凌源市| 平利县| 凤阳县| 长乐市|