我如何根据最早的日期选择供应商?

时间:2016-09-30 12:08:34

标签: php mysql

我正在开展电子商务项目,并希望根据最早的日期选择供应商......这是我的数据库设计

产品

id(PK) name            price  added_date(DATE)
1      Samsung Note    180000  2016-09-30
2      Nokia Lumia 510 215000  2016-09-29

供应商

id(PK) name     registered_date(timestamp) stock
1  Easyshop 2016-09-30 12:50:12             10
2  T-mobile 2016-09-30 12:55:36             10

product_supplier

itemid(pk) supplierid(pk)
 1          2
 1          1

您可以看到第1项为2个供应商。那么,我想要做的是:根据首先添加的供应商选择项目(如先进先出先出后的方法)

怎么办join query with timestamp as condition

3 个答案:

答案 0 :(得分:0)

如果您只想要一条记录,那么下面的查询应该可以正常工作

    select product.* from product p LEFT JOIN product_supplier on product.id = itemid 
LEFT JOIN supplier ON supplierid = supplier.id 
order by registered_date ASC 
LIMIT 1; 

答案 1 :(得分:0)

您可以使用子查询。在子查询中使用GROUP BY和Max。

SELECT PS.itemid, PS.supplierid, P.name, P.price, P.added_date, S.name, S.registered_date FROM product_supplier AS PS 
LEFT JOIN Product AS P ON P.id = PS.itemid
LEFT JOIN Supplier AS S ON S.id = PS.supplierid
GROUP BY PS.itemid 
ORDER BY PS.itemid LIMIT 1

答案 2 :(得分:0)

希望这对你有用......

select  product_supplier.*, product.name, supplier.name, from 
    product_supplier 
    join product on (product_supplier.itemid = product.id)
    join supplier on (product_supplier.supplierid = supplier.id)
    order by supplier.registered_date asc