公司表 gs
产品表 cp gs表
id name
1 中国移动
2 伊利集团
3 康师傅集团
4 可口可乐公司
cp表 id name link
1 139手机卡 1
2 双网手机 1
3 纯牛奶 2
4 早餐奶 2
5 晚上好奶 2
6 冰红茶 3
7 方便面 3
8 可口可乐 4
9 醒目 4
10 雪碧 4
————————————————————————————————————————————————
最终想显示成这个样式 中国移动
139手机卡 双网手机 伊利集团
纯牛奶 早餐奶 晚上好奶 康师傅集团
冰红茶 方便面 可口可乐公司
可口可乐 醒目 雪碧 —————————————————————————————————————————————————— 我现在采用了这个代码 $sql = "SELECT * FROM gs ORDER BY id DESC LIMIT 1,50";
$result = mysql_db_query($dbname, $sql);
while ($row=mysql_fetch_array($result)){ echo $row[name]." <br> ";
$jobsql = "SELECT * FROM cp WHERE link=$row[id] ORDER BY id DESC LIMIT 1,3";
$jobresult = mysql_db_query($dbname, $jobsql);
while ($row=mysql_fetch_array($jobresult)){
echo $row[name];
}
} 当显示50个产品时候,就相当于访问数据库50x3=150次,系统显示效率很慢了,请问如何解决执行效率问题呢?请高手给一个好的解决方案,并结合给出的数据逻辑关系恩赐代码,谢谢!
产品表 cp gs表
id name
1 中国移动
2 伊利集团
3 康师傅集团
4 可口可乐公司
cp表 id name link
1 139手机卡 1
2 双网手机 1
3 纯牛奶 2
4 早餐奶 2
5 晚上好奶 2
6 冰红茶 3
7 方便面 3
8 可口可乐 4
9 醒目 4
10 雪碧 4
————————————————————————————————————————————————
最终想显示成这个样式 中国移动
139手机卡 双网手机 伊利集团
纯牛奶 早餐奶 晚上好奶 康师傅集团
冰红茶 方便面 可口可乐公司
可口可乐 醒目 雪碧 —————————————————————————————————————————————————— 我现在采用了这个代码 $sql = "SELECT * FROM gs ORDER BY id DESC LIMIT 1,50";
$result = mysql_db_query($dbname, $sql);
while ($row=mysql_fetch_array($result)){ echo $row[name]." <br> ";
$jobsql = "SELECT * FROM cp WHERE link=$row[id] ORDER BY id DESC LIMIT 1,3";
$jobresult = mysql_db_query($dbname, $jobsql);
while ($row=mysql_fetch_array($jobresult)){
echo $row[name];
}
} 当显示50个产品时候,就相当于访问数据库50x3=150次,系统显示效率很慢了,请问如何解决执行效率问题呢?请高手给一个好的解决方案,并结合给出的数据逻辑关系恩赐代码,谢谢!
select gs.name,group_concat(cp.name separator ' ') from gs,cp where gs.id = cp.link group by cp.link