select多表查询出问题?求回答解决方法

发布于 2021-11-20 09:39:20 字数 1109 浏览 868 评论 6

主表(Product):   maker:为制造商  model:为型号 type:为类型

 

从表1(pc):model:为类型  speed:为速度  ram:为容量  price:价格

 

从表2(laptop):同上

 

从表3(printer):model同上 color:是否彩色 type:处理类型 price:价格

 

题目:查询制造商B制造的任何类型的所有产品的型号和价格?

我本人写的sql:

SELECT a.`maker`,b.`price`,c.`price`
FROM product a RIGHT OUTER JOIN (pc b,laptop c)
ON (a.`model`= b.`model` OR a.`model`=c.`model`)
WHERE a.`maker`='B';

但是得出的结果却是:

求解决方法!

 

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

路还长,别太狂 2021-11-26 09:20:58

多谢帮忙

一笔一画续写前缘 2021-11-26 03:23:45

try

SELECT a.*, b.price, c.price FROM product a 
  LEFT JOIN pc b ON a.model = b.model 
  LEFT JOIN laptop c ON a.model = c.model
  WHERE a.maker = 'B';

不过若model不唯一就有问题。表设计貌似有问题

鹤舞 2021-11-25 10:09:33

用左连接吧

飘然心甜 2021-11-24 12:57:46

没人知道解答方法?

挽清梦 2021-11-23 13:24:41

没人能够回答我吗?

浅沫记忆 2021-11-22 10:02:37

问题解决:

SELECT DISTINCT a.model AS a_model,b.price AS b_price,c.price AS c_price

FROM product a LEFT JOIN pc b ON a.model=b.model

LEFT JOIN laptop c ON a.model=c.model

WHERE a.maker='B';

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文