查询10个店铺的5调商品 怎么写sql 查询??

netwinder 发布于 2014/06/14 14:46
阅读 340
收藏 0

店铺 一个表  有dian_id 字段 

商品 一个表 有dian_id字段

现在我想 根据条件查询出 10个店铺    然后在根据条件 查询出这10个店铺的 5条商品信息

都有排序条件

能否不用 11次查库啊    !!!!!

能不能一条语句查出来  

各位大神  谢谢了  

加载中
0
pcxsvl
pcxsvl

可以先创一个过程,然后每次调用这个过程就行了,mysql我没学过但在网上查到了它的控制流语言照着写了一个,不对的地方请指教,你说只查库11次,看来你是高手哦,能不能把查询代码发给我啊?我写的东西就算抛砖引玉吧!我的邮箱为:pcxsvl@163.com;谢谢!

Create procedure SnGm(int n, int m)

Begin

   Set @n1=0;

   Set @n2=0;

   Set @maxS0=INT_MAX;

   Set @maxS1=0;

   Set @maxG0=INT_MAX;

   Set @maxG1=0;

   Set @Sname=””;

   Set @Gname=””;

   Sn:loop

      Select @Sname=shopname from shop

      Where @maxS1= shopvalue< @maxS0 and shopvalue>=all(select shopvalue from shop Where shopvalue<@maxS0;);

      If @Sname=null then

          Leave Sn;

      End if;

      Print @Sname;

      @n1=@n1+1;

      @n2=0;

      @maxG0=INT_MAX;

      Gm:loop

         Select @Gname=goodsname from goods

         Where @maxG1=goodsvalue<@maxG0 and goodsvalue>=all(select goodsvalue from goods  Where goodsvalue<@maxG0;)

         If @Gname=null then

             Leave Gm;

         End if;

         Print @Gname;

         @n2=@n2+1;

         If @n2=m then

             Leave Gm;

         End if;

         @maxG0=@maxG1;

       End loop Gm;

      If @n1=n then

        Leave Sn;

      End if;

      @maxS0=@maxS1;

End loop Sn;

End

0
工程师爸爸
工程师爸爸

不知道撸主 指的5条是查询结果总共需要5条?还是指每个店铺查询5条? 

如果是总共5条SQL如下:

SELECT * from product WHERE dian_id IN(
	SELECT dian_id FROM shop WHERE 条件
) ORDER xxx LIMIT 5


如果是每个店铺5条 还是分别查吧。
netwinder
netwinder
指每个店铺查询5条
返回顶部
顶部