left join 右表多條資料重複

來源:互聯網
上載者:User


mysql的left join從兩個表中聯集查詢資料,以左表為主,右表為輔。如果左表中有的內容右表中沒有,則用null填充。這是一般的常見的解釋。也很容易理解。但是在做右表的多資料查詢的時候就得寫條件了。

我寫一個產品-產品圖片的分頁過程中需要查出一個圖片即可。但是在用mysql的left join中,左表為product,鍵為pid。右表為image主鍵為imageid,外鍵為pid。
查詢語句入下

select product.* from product left join image using(pid);
當輸出結果時發現,當一個產品資料對多個圖片資料時,產品會出現重複。這就是遇到的麻煩,查詢網路上有人有這樣的問題,

但是都是通過分步來解決,即查詢完畢產品資料,然後迴圈的時候再進行圖片查詢並查詢1個輸出。

我想了半天,採用了另一種方法解決,left join 右表多條資料的情況,根據上面的我寫了如下sql語句
select product.*,foraspcn.image from product left join(select imagename,pid from image group by pid) as foraspcn

using(pid);
這樣查詢出來就是一個產品對應一個圖片

即,在查詢右串連的表時,查詢的就是1條資料,通過groupby 來進行資料檢索。當然這樣的group by 是說不準查出那條來的。

我就是這樣解決的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.