2019-02-14
閱讀量:
753
SQL查詢問(wèn)題
問(wèn)題描述:
店鋪表shop
shopid shopname
1 水果店
2 衣服店
3 糧食店
活動(dòng)表activity
aid shopid actname
1 1 送蘋(píng)果活動(dòng)
2 1 送橘子活動(dòng)
3 2 送襯衫活動(dòng)
4 2 送鞋子活動(dòng)
商戶表user
商戶id 店鋪id 商戶等級(jí)
uid shopid level
87 1 高級(jí)商戶
88 2 中級(jí)商戶
89 3 低級(jí)用戶
需要找到有活動(dòng)的店鋪,然后顯示信息,最終結(jié)果
水果店 高級(jí)用戶 有送蘋(píng)果和送橘子活動(dòng)
衣服店 中級(jí)用戶 有送襯衫和送鞋子活動(dòng)
1.shop表inner join activity表 group by shopid 找到有活動(dòng)的店鋪
shoplist = select shopid inner join activity on a.shopid=s.shopid;
2.然后遍歷shoplist
$res = array();
for($shoplist as $val){
$info = select * from user left join activity on u.shopid=a.shopid where shopid=$val['shopid'] //
$info = array(
array(level=>'高級(jí)用戶',actname='送蘋(píng)果活動(dòng)'),
array(level=>'高級(jí)用戶',actname='送橘子活動(dòng)'),
);
處理$info
最后店鋪信息為 $res[] = array('高級(jí)用戶,送蘋(píng)果活動(dòng),送橘子活動(dòng)');
}
能不能直接用一條sql解決這個(gè)問(wèn)題呢?
解決方法:
select shopname,level,group_concat(actname) from(select shop.shopname,user.level,activity.actname from shop inner join user on shop.shopid = user.shopid inner join activity on shop.shopid = activity.shopid) group by shopname,level;






評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
1條評(píng)論