2018-10-24
閱讀量:
1127
MySQL自連接
MySQL自連接就是在同一張表上自己連接自己,參與連接的表都是同一張表,通過(guò)給表取別名虛擬出兩張表。
當(dāng)我們想將表中行與同一表中的其他行組合時(shí),可以使用自連接。要執(zhí)行自連接操作必須使用表別名來(lái)幫助MySQL在單個(gè)查詢中區(qū)分左表與同一張表的右表。
為了更好的理解,假想以下場(chǎng)景:某一電商網(wǎng)站想要對(duì)站內(nèi)產(chǎn)品做層級(jí)分類,一個(gè)類別下面有若干子類,子類下面也會(huì)有別的子類。例如數(shù)碼產(chǎn)品這個(gè)類別下面有筆記本,臺(tái)式機(jī),智能手機(jī)等;筆記本,臺(tái)式機(jī),智能手機(jī)又可以按照品牌分類;品牌又可以按照價(jià)格分類,等等。也許這些分類會(huì)達(dá)到一個(gè)很深的層次,呈現(xiàn)一種樹(shù)狀的結(jié)構(gòu)。那么這些數(shù)據(jù)要怎么在數(shù)據(jù)庫(kù)中表示呢?
我們可以在數(shù)據(jù)庫(kù)中創(chuàng)建兩個(gè)字段來(lái)存儲(chǔ)id和類別名稱,使用第三個(gè)字段存儲(chǔ)類別的子類或者父類的id,最后通過(guò)自連接去查詢想要的結(jié)果。

查詢所有分類以及分類的父類:

查詢所有分類以及分類的子類:







評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
1條評(píng)論