Selecting by MAX(date) from joined table
===

I am running this query.

    SELECT t1.quantity, transaction_date, product_id 
    FROM ezsystem_usah.invoice_line AS t1     
    INNER JOIN ezsystem_usah.invoices AS t2 
    ON t1.invoice_id = t2.id_invoices 
    WHERE t2.customer_id = '8000004C-1325619329' 
    AND (product_id = '8000016F-1325198704' 
    OR product_id = '80000027-1324422404' OR ...);

The resulting table is 

    quantity | transaction_date | product_id
    7          2012-01-04         8000016F-1325198704
    8          2012-03-05         8000016F-1325198704
    1          2012-01-05         11111111-1324422404
    ...        ...                ...

I would like to select rows based upon MAX(transaction_date) for a particular product_id, in order to yield something like this:

    quantity | transaction_date | product_id
    8          2012-03-05         8000016F-1325198704
    1          2012-01-05         11111111-1324422404
In other words, from the joined table, I want to select the latest entry of EACH product id.

I have tried:

    SELECT t1.quantity, MAX(transaction_date), product_id 
    FROM ezsystem_usah.invoice_line AS t1 
    INNER JOIN ezsystem_usah.invoices AS t2 ON t1.invoice_id = t2.id_invoices 
    WHERE t2.customer_id = '8000004C-1325619329' 
    AND (product_id = '8000016F-1325198704' OR product_id = '80000027-1324422404' OR ...)     
    GROUP BY product_id; 

however the quantity is incorrect.

Another way I haven't tried but I think might work is to use `HAVING MAX(transaction_date) = ([sub query])`, but it seems costly.

Worst case, I can run queries for each product one by one, but I'd like to avoid that if possible.

Thanks,
Dane