第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在SQL或MySQL中不使用JOIN關(guān)鍵字的聯(lián)接有問(wèn)題嗎?

在SQL或MySQL中不使用JOIN關(guān)鍵字的聯(lián)接有問(wèn)題嗎?

泛舟湖上清波郎朗 2019-11-15 14:41:25
當(dāng)我開(kāi)始編寫(xiě)數(shù)據(jù)庫(kù)查詢(xún)時(shí),我還不知道JOIN關(guān)鍵字,自然地,我只是擴(kuò)展了我已經(jīng)知道的內(nèi)容并編寫(xiě)了這樣的查詢(xún):SELECT a.someRow, b.someRow FROM tableA AS a, tableB AS b WHERE a.ID=b.ID AND b.ID= $someVar現(xiàn)在,我知道這與INNER JOIN相同,我在代碼中找到了所有這些查詢(xún),并問(wèn)自己是否應(yīng)該重寫(xiě)它們。它們有什么臭味嗎?編輯:我的答案摘要:此查詢(xún)沒(méi)有問(wèn)題,但使用關(guān)鍵字很可能會(huì)使代碼更具可讀性/可維護(hù)性。我的結(jié)論是:我不會(huì)更改舊的查詢(xún),但將來(lái)會(huì)更正我的寫(xiě)作風(fēng)格并使用關(guān)鍵字。感謝您的回答!
查看完整描述

3 回答

?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

WHERE在某些常見(jiàn)情況下,僅使用過(guò)濾聯(lián)接可能效率極低。例如:


SELECT * FROM people p, companies c 

    WHERE p.companyID = c.id AND p.firstName = 'Daniel'

大多數(shù)數(shù)據(jù)庫(kù)將完全按字面意義執(zhí)行此查詢(xún),首先采用和表的笛卡爾積,然后按具有和字段的表進(jìn)行過(guò)濾。盡管完全不受約束的產(chǎn)品并不存在于內(nèi)存中,而是僅存在片刻,但計(jì)算確實(shí)需要一些時(shí)間。peoplecompaniescompanyIDid


更好的方法是JOIN在相關(guān)時(shí)將約束與s 組合在一起。這不僅主觀上更容易閱讀,而且效率更高。因此:


SELECT * FROM people p JOIN companies c ON p.companyID = c.id

    WHERE p.firstName = 'Daniel'

它稍長(zhǎng)一些,但是數(shù)據(jù)庫(kù)能夠查看該ON子句并使用它直接計(jì)算完全約束JOIN,而不是從所有內(nèi)容開(kāi)始然后進(jìn)行限制。這樣可以更快地進(jìn)行計(jì)算(尤其是對(duì)于大型數(shù)據(jù)集和/或多表聯(lián)接),并且需要更少的內(nèi)存。


我更改了我看到的每個(gè)使用“逗號(hào)JOIN”語(yǔ)法的查詢(xún)。我認(rèn)為,其存在的唯一目的是簡(jiǎn)潔??紤]到性能影響,我認(rèn)為這不是一個(gè)令人信服的理由。


查看完整回答
反對(duì) 回復(fù) 2019-11-15
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

更詳細(xì)的信息INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN來(lái)自ANSI SQL / 92語(yǔ)法以進(jìn)行連接。對(duì)我而言,這種冗長(zhǎng)的用法使開(kāi)發(fā)人員/ DBA可以更清楚地了解聯(lián)接的意圖。


查看完整回答
反對(duì) 回復(fù) 2019-11-15
  • 3 回答
  • 0 關(guān)注
  • 1639 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)