mysql联合查询问题

有一个商品表,表结构如下
图片描述

另外一张商品SKU表,表结构如下
图片描述

我的问题是,这种表的设计方式在实际应用中应该如何查询更高效,比如:
1、查询商品列表时如何写sql(结果中每行应该包含多个sku)?
2、查询一个商品时又如何写sql?
请问各位大神,这两种需求应该怎么写SQL语句呢

阅读 2.2k
1 个回答

没人回答,自己来回答吧,经过几个小时的摸索,不知道自己的这种方式效率高不,请各位大神指点指点:

EXPLAIN select a.id,a.name,GROUP_CONCAT(b.name) AS sku,GROUP_CONCAT(b.price) as price,SUM(b.instock) AS instock from product AS a inner join product_sku AS b on  a.id=b.pid where a.mid=1 and a.ondelete=0 GROUP BY a.id order by a.id asc limit 0,15

使用explain分析了下以上的sql语句,结果如下:

id    select_type    table    partitions    type    possible_keys    key    key_len    ref    rows    filtered    Extra    
1    SIMPLE    a    NULL    ref    m_o_c_i    m_o_c_i    7    const,const    2    100.00    Using index condition
1    SIMPLE    b    NULL    ref    id    id    4    zsmart.a.id    1    100.00    NULL  
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题