分享

实现mysql的三表联查

 桑枯海 2013-08-28

这几天都在学mysql,中午被一道题卡住了

题为:实现goods表,category表,brand表,3表连接查询,得出以下字段

goods_id cat_id cat_name brand_id brand_name goods_name
     里面有goods、category、brand三张表两表联查是会的
  1. <span style="font-family:'Microsoft YaHei';font-size:12px;">select goods_id,goods.cat_id,cat_name,goods.brand_id,goods_name from goods left join category on goods.cat_id = category.cat_id</span>  
     可是三表联查却有些绕了,刚开始按我的理解模式为,上面的查询结果当做一张表,再左连接
  1. <span style="font-family:'Microsoft YaHei';font-size:12px;">select goods_id,goods.cat_id,cat_name,goods.brand_id,brand_name,goods_name from goods left join category on goods.cat_id = category.cat_id left join brand on goods.brand_id = brand.brand_id;</span>  
         结果是出来了,可是感觉如昨天看的资料有点不一样,昨天是把查询结果当做一张表,然后用括号括起来,再做左连接可发现不成功
  1. <span style="font-family:'Microsoft YaHei';font-size:12px;">select brand_name from (select goods_id,goods.cat_id,cat_name,goods.brand_id,goods_name from goods left join category on goods.cat_id = category.cat_id) as temp left join brand on goods.brand_id = brand.brand_id;</span>  
      后来仔细想想,发现应该把
  1. <span style="font-family:'Microsoft YaHei';font-size:12px;">goods left join category on goods.cat_id = category.cat_id</span>  
        当做一张表来看,那么结果就可以理解通顺了。
     之所以写这个,一是提醒下自己以后不要又陷入思维定式了,二是,今天中午也上网查了下资料,可是满意的却没有,于是就整理下,写了下来,高手勿哂。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多