我正在开展电子商务项目,并希望根据最早的日期选择供应商......这是我的数据库设计
产品
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
?
答案 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