性少妇vide0seⅹfree_国产剧情视频在线观看_日日碰夜夜爽_九九这里只有精品视频_性free毛茸茸偷窥videos_国产v亚洲

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 數(shù)據(jù)庫(kù) > 使用SQLZOO學(xué)習(xí)自我JOIN查詢(xún)

使用SQLZOO學(xué)習(xí)自我JOIN查詢(xún)

2020-07-21 17:11:33 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

 理解SQL問(wèn)題的唯一方法是了解您正在處理的數(shù)據(jù)。如果您無(wú)法以某種方式可視化表,則SQL的整個(gè)業(yè)務(wù)將變得非常抽象。因此,我們要做的第一件事是了解問(wèn)題編號(hào)為No的表。讓我們看一下我們的數(shù)據(jù)庫(kù)。本文使用Self JOIN SQL ZOO教程上的練習(xí)編號(hào)10,以一種對(duì)初學(xué)者友好的方式來(lái)教授self JOIN。

假設(shè)您已經(jīng)了解基本知識(shí),所以我不會(huì)講授如何編寫(xiě)SQL查詢(xún)。相反,我將展示如何嘗試?yán)斫鈹?shù)據(jù)庫(kù)。我將思考過(guò)程分為以下步驟。

  1.選擇所有項(xiàng)目

如果我們的表有數(shù)百萬(wàn)行,則返回所有項(xiàng)目的查詢(xún)可能需要花費(fèi)很多時(shí)間才能加載。您始終可以使用LIMIT 50或類(lèi)似的方式,這樣就不會(huì)永久加載表。在我們的例子中,SQL ZOO已經(jīng)只返回查詢(xún)的前50行,因此我們不必?fù)?dān)心。讓我們看看它是什么樣的。

好了,id和stop是我們用來(lái)連接兩個(gè)表的鍵,這就是為什么它們?cè)诿恳恍兄锌偸窍嗤脑颉N覀兊玫搅塑?chē)站的名稱(chēng),公共汽車(chē)號(hào)和公共汽車(chē)公司。我們從一個(gè)較早的問(wèn)題中了解到,通常我們會(huì)按編號(hào)和公司名稱(chēng)來(lái)引用總線,例如“ 124 SMT”。因此,通過(guò)查看我們的表,我們可以假設(shè)在A的車(chē)站我們可以乘坐124 SMT公共汽車(chē)。

到目前為止,一切都很好,但是我花了更多時(shí)間來(lái)了解pos是什么。在頁(yè)面的開(kāi)始,有一個(gè)鏈接可以將我們帶到一個(gè)地方,他們可以告訴我們表中每一列的含義。他們說(shuō)pos是停靠點(diǎn)的順序,但是我仍然無(wú)法僅通過(guò)查看表格就可以看到它的含義?,F(xiàn)在,對(duì)我們而言,好消息是我們不需要使用pos來(lái)解決問(wèn)題,但是我仍然會(huì)告訴您如何在下一步中理解它。

  2.使用ORDER BY了解發(fā)生了什么

如果我們被責(zé)令NUM然后通過(guò)位置,我們會(huì)看到“1輕軌的巴士,例如,從利思葉然后在往返去,直到它在其他9個(gè)站停車(chē)后回來(lái)雷斯。如果我們坐下來(lái),我們會(huì)發(fā)現(xiàn)并不是所有的公交車(chē)都是往返的,因?yàn)樗鼈儾粫?huì)總是停在起點(diǎn)的同一站。

就像我說(shuō)的那樣,我們不需要在此練習(xí)中使用pos,但是,如果我們?cè)噲D查找(例如)不僅可用的公交車(chē),而且要查找最短的路線,這可能會(huì)很有用。

好的,現(xiàn)在我們對(duì)正在發(fā)生的事情有了更清晰的了解,讓我們看看問(wèn)題想要我們做什么。

好的,所以,通過(guò)告訴我們我們需要兩輛巴士,我們知道從A地點(diǎn)到B地點(diǎn)沒(méi)有直達(dá)的巴士。換句話說(shuō),我們需要找到在A??康墓卉?chē),以及在B??康墓卉?chē)。因?yàn)槟鞘撬麄兿萝?chē)和換乘公共汽車(chē)的地方。我希望這很清楚。正如我所說(shuō),不查看地圖可能很難將其可視化。但希望它會(huì)在一秒鐘內(nèi)變得更加清晰。

與一切一樣,我們可以通過(guò)多種方式來(lái)做事情。在進(jìn)行下一步時(shí),請(qǐng)記住這一點(diǎn)。

  3.永遠(yuǎn)不要忘記自我聯(lián)接會(huì)創(chuàng)建一個(gè)新表

當(dāng)您進(jìn)行自我聯(lián)接時(shí),您可能會(huì)試圖將其可視化為以某種方式聯(lián)接到自身的桌子。但是考慮的方式是兩個(gè)看起來(lái)完全一樣的單獨(dú)的表。您將新的加入第一個(gè)的一側(cè)。因?yàn)樗鼈兺耆嗤?,所以任何列都可以成為鍵。換句話說(shuō),您可以選擇主鍵。這就是樂(lè)趣的開(kāi)始!

現(xiàn)在,每行只有一個(gè)??空?,但是對(duì)于下一步,我們需要另一個(gè)??空?,即轉(zhuǎn)移??空?。所以,這就是我們可以做的:我們可以將一個(gè)新的路由表連接到我們已經(jīng)擁有ON num AND company的表。

您會(huì)看到,我們的r2表被追加到我們的r1表中,并累加了所有列。r1和r2始終具有相同的num和company(在相同的行中),因?yàn)檫@是我們加入它們的地方。

我們已經(jīng)看到“ 1 LRT”線貫穿11個(gè)站點(diǎn)。這就是為什么我們可以在每個(gè)新站點(diǎn)看到站點(diǎn)名稱(chēng)重復(fù)11行的原因。換句話說(shuō),您可以從Leith到達(dá)最右邊一列中列出的所有站點(diǎn)。讓我們減少顯示的列數(shù),以便可以更好地查看數(shù)據(jù)。

  4.通過(guò)自我加入,橫向思考

在要過(guò)濾數(shù)據(jù)之前,容易造成一些損失。如果您將表格可視化為水平地圖,將很有幫助。在您的左邊,您將要離開(kāi)的地方是:A。在您的右邊,您將擁有-我將很快顯示它-您的轉(zhuǎn)機(jī)站,然后是目的地。

因此,讓我們用“ A” 過(guò)濾列名。

因此,如果考慮到“ ??空尽绷?,那么我們現(xiàn)在要看的是可以從A出發(fā)的所有停靠站的列表。

現(xiàn)在,想象一下我們可以為洛亨德做同樣的事情,但是不是將其作為出發(fā),而是將其作為到達(dá)。讓我們看看會(huì)是什么樣子。

現(xiàn)在,“ 停止”列顯示了所有我們可以乘公共汽車(chē)前往洛興德的站點(diǎn)。

在此之前的查詢(xún)中,我們看到了可以從克雷格洛克哈特出發(fā)的所有停留站。在這一過(guò)程中,我們擁有前往洛興德的所有停留地點(diǎn)。換句話說(shuō),我們要做的就是將這兩個(gè)表連接在一起。同樣,請(qǐng)記住以下幾點(diǎn):JOIN s將表水平或左右連接。有一種叫做UNION的東西可以垂直堆疊表-彼此疊放,但是JOIN可以將它們水平粘合。

那么,如何連接剛剛看到的這兩個(gè)查詢(xún)?我將首先向您展示很長(zhǎng)的路要走,然后再向您展示較短的語(yǔ)法。

好了,我仍然沒(méi)有刪除不需要的列,但讓我們看一下。

現(xiàn)在,我們有四個(gè)路線表和一個(gè)停靠站表-向我們顯示了轉(zhuǎn)乘??空尽,F(xiàn)在,我們要做的是通過(guò)“ A”過(guò)濾r1的??奎c(diǎn),并通過(guò)“ B”過(guò)濾r4的停靠點(diǎn),我們將得到答案。為此,我們可以在表的開(kāi)頭加入另一個(gè)Stops表,然后在表的末尾附加另一個(gè)Stops。但是,相反,我們可以將學(xué)到的知識(shí)用于子查詢(xún),就像這樣。

我們得到了解決方案。我們?cè)趺粗?它說(shuō)“列太多”。因此,我們知道我們只需要調(diào)整顯示的列數(shù)即可。讓我們看一下問(wèn)題標(biāo)題。

它說(shuō)某些數(shù)據(jù)仍然不正確。讓我們調(diào)查原因。如果我們向下滾動(dòng)表格,則可以單擊一個(gè)鏈接,該鏈接向我們顯示答案的外觀。來(lái)做吧。

當(dāng)我們將其答案與他們的答案進(jìn)行比較時(shí),我們意識(shí)到這可能只是按照他們希望的方式訂購(gòu)色譜柱的問(wèn)題。萬(wàn)一您無(wú)法立即可視化要ORDER BY的列,則可能需要做一些試驗(yàn),但是最后,這就是我們要做的。

好極了!我們得到了笑臉和解決問(wèn)題的方法。我只會(huì)向您展示的是針對(duì)同一解決方案的較短語(yǔ)法。

當(dāng)然,它并沒(méi)有那么短,當(dāng)然也沒(méi)有那么直觀,但是您已經(jīng)擁有了。同樣重要的是要注意,當(dāng)您使用JOIN ... ON語(yǔ)法時(shí),始終可以在ON子句或WHERE上編寫(xiě)條件。

上述就是關(guān)于使用SQLZOO學(xué)習(xí)自我JOIN查詢(xún)的全部?jī)?nèi)容,想了解更多關(guān)于SQL數(shù)據(jù)庫(kù)的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。

標(biāo)簽: SQL 數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 国产精品亚洲欧美日韩久久制服诱 | 国产成人精选 | 网站在线观看黄 | 少妇淫片 | t∨澳门黄不让成人在线无码视频 | 日韩欧美亚洲另类 | 少妇拍拍视频 | 久久中文精品无码中文字幕 | 精品一区在线视频 | 国产中文字幕久久 | 视频一区欧美 | 三级特黄30分钟 | freesexmovies性护士第一次 | 成年人免费看片 | 中文字幕在线视频不卡 | 日本中文一二区有码在线 | 啦啦啦视频在线 | 国产精品s | 亚洲国产午夜精品理论片在线播放 | 在线观看亚 | 91免费成人 | 国产天堂亚洲国产碰碰 | 九九精品国产亚洲AV日韩 | 亚洲国产香蕉碰碰人人 | 国产精品久久久久久久7777 | 欧美一级黄色免费 | 国产成人亚洲综合一区 | GOGOGO免费高清看中国国语 | 久久精品国产亚洲aⅴ瑜伽 国产又黄又爽刺激片 | 国产精品午夜一区 | 天天干天天要 | 女人被躁到高潮视频免费软件 | 中文字幕欧美一区 | 69xxx曰本| 美国豪放女大兵在线观看 | 黄色片在线观看免费 | 国产精品亚洲АV无码播放 а√中文在线8 | 亚洲精品永久中文字幕 | 国产午夜三级一区二区三区 | 国产91免费在线 | 国内愉拍国内精品少妇 |