課程
/數(shù)據(jù)庫(kù)
/MySQL
/MySQL開發(fā)技巧(一)
什么時(shí)候要用left join,它的連接條件怎么確定,怎么知道用哪個(gè)表作為左表,又怎么確定要查詢哪些字段呢,求解答。謝謝!
2015-12-31
源自:MySQL開發(fā)技巧(一) 2-2
正在回答
第一個(gè)問(wèn)題:什么時(shí)候用left join?說(shuō)說(shuō)我的理解
兩個(gè)表(left join左邊的表稱為左表,右邊的稱為右表)有主外鍵關(guān)聯(lián)時(shí),這個(gè)是前提條件,我們想同時(shí)查詢兩個(gè)表中的信息,這個(gè)時(shí)候可以采用這種left join,當(dāng)然也可以用right join,簡(jiǎn)單說(shuō)一下區(qū)別,left join是以左表為主,就是查詢出左表的全部數(shù)據(jù)并查詢出右表的主外鍵關(guān)聯(lián)數(shù)據(jù),right join相反。你可以找點(diǎn)文章看看。
第二個(gè)問(wèn)題:連接條件怎么確定?
SELECT?*?FROM?beasp_user?u?LEFT?JOIN?beasp_address?a?ON?u.`id`=a.`user_id`
這里u.'id' 中的 id 為左表的主鍵,a.'user_id'為右表的外鍵,指向 u 表的主鍵。就是主外鍵關(guān)聯(lián)作為條件。
第三個(gè)問(wèn)題:怎么知道用那個(gè)表作為左表?
就像第一個(gè)問(wèn)題中所說(shuō)的,想查詢某個(gè)表中的所有內(nèi)容,查詢另一個(gè)表中的關(guān)聯(lián)內(nèi)容,那么想查詢所有內(nèi)容的表作為左表。
第四個(gè)問(wèn)題:怎么確定要查詢那些字段?
* 代表查詢所有字段,如果想查詢某個(gè)表的字段,可以使用 "表名(如果有別名,就用別名).*",如果想查詢部分字段,可以使用“表名(如果有別名,就用別名).字段名”,如果字段有沖突,就為字段重新命名!
樓上大神 啊
舉報(bào)
DBA和開發(fā)人員都必備的技能,SQL技巧一個(gè)好程序員必備技能
1 回答left join union all right join 后怎么產(chǎn)笛卡爾積了?
1 回答請(qǐng)問(wèn),為什么left join比子查詢效率高?
2 回答到底是left join 還是 左外連接
1 回答left join 是否左表數(shù)據(jù)百萬(wàn)時(shí), 效率極低
1 回答JOIN的用法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-01-03
第一個(gè)問(wèn)題:什么時(shí)候用left join?說(shuō)說(shuō)我的理解
兩個(gè)表(left join左邊的表稱為左表,右邊的稱為右表)有主外鍵關(guān)聯(lián)時(shí),這個(gè)是前提條件,我們想同時(shí)查詢兩個(gè)表中的信息,這個(gè)時(shí)候可以采用這種left join,當(dāng)然也可以用right join,簡(jiǎn)單說(shuō)一下區(qū)別,left join是以左表為主,就是查詢出左表的全部數(shù)據(jù)并查詢出右表的主外鍵關(guān)聯(lián)數(shù)據(jù),right join相反。你可以找點(diǎn)文章看看。
第二個(gè)問(wèn)題:連接條件怎么確定?
這里u.'id' 中的 id 為左表的主鍵,a.'user_id'為右表的外鍵,指向 u 表的主鍵。就是主外鍵關(guān)聯(lián)作為條件。
第三個(gè)問(wèn)題:怎么知道用那個(gè)表作為左表?
就像第一個(gè)問(wèn)題中所說(shuō)的,想查詢某個(gè)表中的所有內(nèi)容,查詢另一個(gè)表中的關(guān)聯(lián)內(nèi)容,那么想查詢所有內(nèi)容的表作為左表。
第四個(gè)問(wèn)題:怎么確定要查詢那些字段?
* 代表查詢所有字段,如果想查詢某個(gè)表的字段,可以使用 "表名(如果有別名,就用別名).*",如果想查詢部分字段,可以使用“表名(如果有別名,就用別名).字段名”,如果字段有沖突,就為字段重新命名!
2017-03-28
2016-06-06
樓上大神 啊