MySQL:如何将多个表关联在一起

时间:2014-03-27 15:39:56

标签: mysql

我试图找到最便宜的guitarRig。吉他装备有部件(即amplifiercabinetmicrophoneguitarTypeguitarStringTypepatchCordeffectsPedal)来自产品。 产品的购买价格由我的PurchaseInformation表格决定。

以下是我的表格:

Table Part:
    name
    guitarRig references GuitarRig(name)
    product references Product(name)

Table Product:
    name
    part references Part(name)
    barcodeNumber

Table PurchaseInformation:
    price
    product references Product(name)    
    purchasedFrom references Store(name)  

到目前为止,我所拥有的是:

SELECT guitarRig
FROM Part
WHERE product =
(
    SELECT name
    FROM Product
    WHERE name =
    (
        SELECT product, MIN(price) as minPrice
        FROM PurchaseInformation
        GROUP BY minPrice
    )
);

我意识到这有很多问题(即我试图说name等于两列,productminPrice),但我不能为了我的生活,弄清楚如何得到我正在寻找的东西。

1 个答案:

答案 0 :(得分:0)

我还没有测试过这个,所以可能会有一些错别字。我的假设是最便宜的guitarRig是通过对该装备的所有零件价格求和来确定的。

SELECT p.guitarRig
     , sum(r.price) as totPrice
  FROM Part p
     , Product r
     , PurchaseInformation i
 WHERE p.product = r.name
   AND p.name    = r.part
   AND r.name    = i.product
GROUP BY p.guitarRig
ORDER BY totPrice desc 
LIMIT 1