MySQL使用pivot从多个表中选择

时间:2014-11-07 16:38:34

标签: mysql inner-join pivot-table

我在两个表之间有多对多关系,我使用数据透视表来管理它。 结构如下:

  • 表1 :cars(car_id,...)
  • 表2 :品牌(brand_id,...)
  • 数据透视表:cars_brands(car_id,brand_id,unit,discount)

只使用一个查询,我试图选择某个品牌汽车的每个字段加上单位和折扣的数量(透视表的两个字段......)

我的尝试:

SELECT c.*, cb.units, cb.discount 
FROM (cars c, cars_brands cb) 
INNER JOIN cb ON c.car_id = cb.car_id 
WHERE cb.brand_id = 1 
ORDER BY c.car_id asc

我正在

  

#1066 - Not unique table/alias: 'cb'

MySQL错误。

非常感谢任何帮助。

提前致谢。

2 个答案:

答案 0 :(得分:3)

我认为你想要的是:

SELECT c.*, cb.units. cb.discount
FROM cars AS c
JOIN car_brands as cb ON cb.car_id = c.car_id
JOIN brands AS b ON b.brand_id = cb.brand_id
WHERE b.brand_name = 'Audi'
ORDER BY c.car_id ASC

答案 1 :(得分:0)

你也可以试试这个: -

从汽车c,品牌b,cars_brands cb中选择c。*,cb.units,cb.discount,其中c.car_id = cb.car_id,b.brand_id = cb.brand_id,cb.brand_id = 8888。 car_id asc;