Mysql 具有来自联接的条件的左联接

Mysql 具有来自联接的条件的左联接,mysql,left-join,Mysql,Left Join,假设我有两张桌子: Table_1 has |Product_ID|Max_Date Table_2 has |Invoice_ID|Product_ID|Sale_Date|Amount_Sold 表2存储了产品的所有销售额 我希望以这样一种方式加入表,即从表2中获得按产品ID分组的SUMAmount,但只考虑表1中每个产品在最长日期之前的销售额 我试过了 SELECT * FROM (SELECT * FROM Table_1)a LEFT JOIN (SELECT

假设我有两张桌子:

    Table_1 has |Product_ID|Max_Date
    Table_2 has |Invoice_ID|Product_ID|Sale_Date|Amount_Sold
表2存储了产品的所有销售额

我希望以这样一种方式加入表,即从表2中获得按产品ID分组的SUMAmount,但只考虑表1中每个产品在最长日期之前的销售额

我试过了

SELECT * FROM 
(SELECT * FROM Table_1)a 
LEFT JOIN 
(SELECT Product_ID,Sale_Date,SUM(Amount_Sold) FROM Table_2 GROUP BY Product_ID)b
ON a.Product_ID=b.Product_ID AND b.Sale_Date<a.Max_Date
但它没有返回正确的总数

我想答案可能是这样的,但我还没有弄明白。。。

有什么想法吗?
提前感谢。

您可以在加入条件中包含日期条件,这也使加入更易于阅读,IMHO

SELECT t2.product_id, sum(amount_sold)
    FROM Table_1 t1 INNER JOIN Table_2 t2
    ON t1.product_id = t2.product_id AND t2.sale_date <= t1.max_date
    GROUP BY t2.product_id