Mysql 中 创建表的问题 create table if not exists
Mysql中创建表的问题createtableifnotexists此时我已经有了一个order3的表,现在执行一个mysql>createtableifnotexist...
Mysql 中 创建表的问题
create table if not exists此时我已经有了一个order3的表,
现在执行一个
mysql>create table if not exists order3 as select goodid,sum(goodct) from orderlist group by sum(goodct) desc;
我的目的是根据订单表(orderlist),制作一个商品热销表。
订单表以订单号(orderid)为主键,含有商品编号(goodid),售出数量(goodct)。
所以,写出了“select goodid,sum(goodct) from orderlist group by sum(goodct) desc”这样的语句,做成一个商品热销榜,但这样的商品热销榜只有商品编号(goodid),没有商品名称,要获取商品名称,必须要联表查询,从goods表中,获取对应的商品名称(goodname)。
所以现在出现了两个问题,一个就是我不知道怎么实现这个功能,即在对订单表(orderlist)执行分组求和并排序筛选后还能联表查询,该怎么写。
第二个问题就是我自己的尝试,使用create创建一个中间表,用中间表储存对订单表的分组求和排序筛选后的产物,所以使用了create table if not exist,这样如果中间表不存在,则创建,如果中间表已经存在,则应该不执行,但是!!!!实际执行以后发现,如果表存在,居然会在表后重复复制粘贴一遍,即原来有4行,现在就会有8行,再执行一遍,变成12行!!!! 展开
create table if not exists此时我已经有了一个order3的表,
现在执行一个
mysql>create table if not exists order3 as select goodid,sum(goodct) from orderlist group by sum(goodct) desc;
我的目的是根据订单表(orderlist),制作一个商品热销表。
订单表以订单号(orderid)为主键,含有商品编号(goodid),售出数量(goodct)。
所以,写出了“select goodid,sum(goodct) from orderlist group by sum(goodct) desc”这样的语句,做成一个商品热销榜,但这样的商品热销榜只有商品编号(goodid),没有商品名称,要获取商品名称,必须要联表查询,从goods表中,获取对应的商品名称(goodname)。
所以现在出现了两个问题,一个就是我不知道怎么实现这个功能,即在对订单表(orderlist)执行分组求和并排序筛选后还能联表查询,该怎么写。
第二个问题就是我自己的尝试,使用create创建一个中间表,用中间表储存对订单表的分组求和排序筛选后的产物,所以使用了create table if not exist,这样如果中间表不存在,则创建,如果中间表已经存在,则应该不执行,但是!!!!实际执行以后发现,如果表存在,居然会在表后重复复制粘贴一遍,即原来有4行,现在就会有8行,再执行一遍,变成12行!!!! 展开
展开全部
create table if not exists order3 as select goodid,goodname,sum(goodct) from orderlist join goods on orderlist.goodid = goods.id group by sum(goodct) desc
重复插入问题看别人的博客解释吧,网页链接,但是没有直接的解决办法,只能drop后再建。
更多追问追答
追问
按照你说的这段代码,第一次输进去,报错Unknow column 'goodname' in field list
把goodname 修改成goods.name后报错
Invalid use of group function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询