left join 右表多條資料重複
阿新 • • 發佈:2018-10-31
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
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 是說不準查出那條來的。
我就是這樣解決的。