简单的sql语句问题,求大佬指点。。。

查询“10248”和“10254”号订单的订单ID、运货商的公司名称、订单上所订购的产品的名称


产品表:

image.png

订单表:

image.png

订单明细表:

image.png

运营商表:

image.png


我用连接查询来着,发现订单表跟订单明细表跟其他的没直接关联,不知道咋写了求大佬们指点

select `订单明细`.`订单ID`,`产品`.`产品名称` FROM 订单明细 

left join `产品` on `订单明细`.`产品ID`=`产品`.`产品ID` 

where 订单明细.`订单ID` BETWEEN '10248' and '10254';

image.png
感谢各位大佬!!已经出来了


select `订单明细`.`订单ID`,`产品`.`产品名称`,`运货商`.`公司名称` FROM `产品` 

left join 订单明细 on `订单明细`.`产品ID`=`产品`.`产品ID` 

left join 订单 on `订单`.`订单ID`=`订单明细`.`订单ID`

LEFT JOIN 运货商 on `运货商`.`运货商ID`=`订单`.`运货商`

where 订单明细.`订单ID` = '10248' || 订单明细.`订单ID` = '10254';


Mimm 发布于 2020-1-7 18:45 (编辑于 2020-1-8 10:30)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
qhlLv6中级互助
发布于2020-1-7 18:55

订单表---订单明细表   订单id关联

订单明细表---产品表   产品id关联

产品表----供应商        供应商id关联

订单表---运货商          运货商id关联


select `订单明细`.`订单ID`,`产品`.`产品名称`  FROM 订单明细 

left join `产品` on `订单明细`.`产品ID`=`产品`.`产品ID` 

left join       `订单表` on  `订单表`. `订单ID`=`订单明细`.`订单ID`

left join  `运货商表` on `运货商表`. `运货商ID`=`订单表`.`运货商ID`

where 订单明细.`订单ID` BETWEEN '10248' and '10254';


最佳回答
0
zsh331Lv8专家互助
发布于2020-1-7 18:56

楼主:订单表和运货商通过运货商id关联就能直接找到运货商公司名称,怎么就不能关联了呢!淡定!


好好研究下,很简单的关联运算!

最佳回答
0
阿林Lv4初级互助
发布于2020-1-7 18:58

楼主好,初步看了下试试

select column

from 订单表 a

left join 订单明细表 b on a.订单id=b.订单id

left join 产品码表 c on b.产品id=c.产品id

left join 运营商表 d on a.运货商=d.运货商id

最佳回答
0
jongwangLv6中级互助
发布于2020-1-7 21:55

订单表 和 运营商表(通过运货商字段和运货商ID字段关联 得出  运货商表中的运货商公司名称

订单表 和 订单明细表(通过订单ID)关联,订单明细表再 和 产品表(通过产品ID)关联 得出产品名称


  • 5关注人数
  • 641浏览人数
  • 最后回答于:2020-1-8 10:30
    请选择关闭问题的原因
    确定 取消
    返回顶部