鍍金池/ 問(wèn)答/Java  PHP  數(shù)據(jù)庫(kù)/ mysql leftjoin的怪問(wèn)題

mysql leftjoin的怪問(wèn)題

SELECT tg.id,tg.name
FROM trd_goods tg LEFT JOIN trd_goods_tag_relation tgt ON tg.id = tgt.goods_id

這是我的sql語(yǔ)句左邊假如50條數(shù)據(jù),右邊100條數(shù)據(jù),為一對(duì)多的關(guān)系,如果按我一直以來(lái)的理解left join以左表為基準(zhǔn)的情況下,最后出來(lái)的數(shù)據(jù)最多只有50條,右表隨機(jī)匹配一條關(guān)聯(lián)上的。但是現(xiàn)實(shí)出現(xiàn)的結(jié)果是100條數(shù)據(jù),有點(diǎn)想不通大神們給我科普下啊

回答
編輯回答
薄荷綠

你理解的左連接是錯(cuò)誤的,左連接是會(huì)匹配所有滿足條件的數(shù)據(jù),如果 trd_goods 中有記錄在 trd_goods_tag_relation 匹配不到數(shù)據(jù)還是會(huì)產(chǎn)生一條記錄,只不過(guò)查詢中 trd_goods_tag_relation 中的字段是 null, 這就是以左邊的表為主。

2017年1月24日 22:34
編輯回答
陌顏

你的理解有誤!
以左連接為例:

左連接 是以左表為主,意思是:匹配所有 滿足左表?xiàng)l件的數(shù)據(jù)。如果右表沒(méi)數(shù)據(jù),則顯示左表字段,右表字段為空。顯示的數(shù)據(jù)總數(shù),最少是左表數(shù)據(jù)
2018年4月23日 08:44
編輯回答
慢半拍

左連接返回的結(jié)果是 左表中所以記錄+右表中連接字段相等的記錄,所以說(shuō),返回結(jié)果最少是50條,而不是最多

2017年7月1日 18:06