linghb99
linghb99
采纳率100%
2016-10-08 04:15

如何写这个SQL语句??

10
已采纳

1、食物大类: 面条、包子、炒菜。
2、小类:
(1)面条:担担面(8块)、鸡蛋面(6块)、排骨面(12块)等。价格不同。
(2)包子:素包子(4块)、肉包子(8块)、三鲜包子(6块)等。价格不同。
(3)炒菜:宫保鸡丁(18块)、木须肉(25块)、尖椒肉丝(20块)等。价格不同。

问题:现在想一个SQL语句,显示每个大类下,价格最低的那个小类产品出来,即显示出下列3个结果:鸡蛋面,素包子,宫保鸡丁来。 因为这3个,在各自小类下,价钱最低。

补充:大类 与 小类这两个表格,外键建立关系。

请问: 如何写这个SQL语句呢???

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • s593360340 s593360340 5年前

    SELECT T.FOODNAME
    FROM FOODTEST T,
    (SELECT MIN(T1.PRICE) PRICE, T1.TYPE
    FROM FOODTEST T1
    GROUP BY T1.TYPE) T2
    WHERE T.PRICE = T2.PRICE
    AND T.TYPE = T2.TYPE

    点赞 3 评论 复制链接分享
  • linghb99 linghb99 5年前

    测试不行,哥哥。等同于 SELECT * FROM smallClass ,全部数据都出来了。我现在只想出每个小类价格中最低的那个产品,应该只有3个结果。

    点赞 评论 复制链接分享
  • silehaixianghuirenj 殇婆婆 5年前
  • msx985211 创业的鱼 5年前

    多少把表搞出来啊,不过可以给一个样子你自己对号入座就可以。

    SELECT MIN(b.price) AS 单价, b.id FROM bigClass a, smallClass b WHERE a.id = b.id GROUP BY b.id

    点赞 评论 复制链接分享
  • jjuu532301 jjuu532301 5年前

    我的mysql不支持外码,你试一试,不知道对不对

    点赞 评论 复制链接分享
  • jjuu532301 jjuu532301 5年前

    create table foodMainType(
    type char(3) not null
    );

    create table foodSubClass(
    foodName char(5) not null,
    price smallInt not null,

    type char(3) foreign key references foodMainType
    (type)
    );

    insert into foodMainType values('面条');
    ……
    insert into foodSubClass values('鸡蛋面',8,'面条');
    ……

    select foodName from foodSubClass GROUP BY
    type HAVING MIN(price);

    点赞 评论 复制链接分享