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

wallacefw 发布于 2014/02/24 19:00
阅读 363
收藏 0

主表(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';

但是得出的结果却是:

求解决方法!

 

 

加载中
0
wallacefw
wallacefw

问题解决:


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';
 
 

 

0
wallacefw
wallacefw
没人能够回答我吗?
0
wallacefw
wallacefw
没人知道解答方法?
0
mark35
mark35
用左连接吧
0
mark35
mark35

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不唯一就有问题。表设计貌似有问题




wallacefw
wallacefw
多谢帮忙
返回顶部
顶部