鍍金池/ 問答/PHP  數(shù)據(jù)庫/ mysql如何獲取對應(yīng)ID相同字段的數(shù)量?

mysql如何獲取對應(yīng)ID相同字段的數(shù)量?

商家列表名mer_content
商家上傳圖片表名mer_imgurl


商家列表名和圖片表名都有對應(yīng)的ID。

商家列表mer_content

id name
1 我是商家名稱1
2 我是商家名稱2

商家上傳圖片存放表mer_imgurl

uid id url
1 1 images/logo.gif
2 1 images/menu.gif
3 1 images/store_pic.gif
4 2 images/logo.gif
5 2 images/userupfile.jpg

表結(jié)構(gòu)大致如上,商家列表mer_content這個表里的ID對應(yīng)商家上傳圖片表里的id,而url里的圖片就是該商家所上傳的圖片。

問題,請問我該如何獲取商家上傳圖片的數(shù)量呢?
我當前使用

SELECT a.*,count(a.url) as num,b.* FROM mer_imgurl a LEFT JOIN mer_content b on a.id = b.id WHERE a.id='1'

的確可以在num字段查看到對應(yīng)相同ID上傳的圖片數(shù)量,但在前端列表里顯示的卻有些混亂?商家列表第一個明明有10張圖卻只循環(huán)出一個圖片,第二個兩個,之后才是三個,請問是怎么回事呢?該如何解決呢?


具體代碼

$merchatdb = $db->query("SELECT a.*,count(a.url) as num,b.* FROM mer_imgurl a LEFT JOIN mer_content b on a.id = b.id WHERE a.id='1'");
while($merdb = $db->fetch_array($merchatdb)){
    $shopdb[]=$merdb;
}
foreach($shopdb AS $k => $v){
    echo $v[url]; //循環(huán)當前商家對應(yīng)ID所上傳所有的圖片
}

非常感謝!~

回答
編輯回答
拮據(jù)
select a.name, b.total from mer_content a 
inner join
(select id, count(url) as total from mer_imgurl group by id) b
on a.id = b.id

就是把表二先按做個group,再和表一用id來join。
如果表二的id和url會有重復(fù)情況的話,那么b中需要改成count(distinct url)

希望能夠幫到你。

2017年2月5日 03:14