![](/img/trans.png)
[英]MySQL query to get one item from a table an multiple items from another table
[英]MySQL Query to get individual item from another table
我有兩個表-1. Feed 2. Seller
Feed表是這樣的
seller_id item_id end_date
========= ======= =========
1 1 2017-02-12[A future date]
1 2 2017-03-12[A future date]
1 3 2017-01-12[A past date]
2 12 2017-02-12[A future date]
3 123 2017-01-10[A past date]
賣方表是這樣的
seller_id
=========
1
2
3
我喜歡這樣的結果,其中end_date大於或等於“當前日期”,並且對於每個Seller_id,我只需要一個item_id-
seller_id item_id
========= =======
1 1 or 2
2 12
我的SQL查詢就像-
SELECT S.seller_id, R.item_id FROM Feed F, Seller S WHERE S.seller_id=F.seller_id AND F.end_date>=CURDATE() GROUP BY S.seller_id LIMIT 1;
檢查一下..
SELECT S.seller_id, MAX(R.item_id) AS item_id FROM Feed F, Seller S WHERE S.seller_id=F.seller_id AND F.end_date>=CURDATE() GROUP BY S.seller_id;
您可以將min()
或max()
甚至any_value()
聚合函數與group by
子句一起使用, item_id
每個賣方選擇一個item_id
:
SELECT S.seller_id, max(R.item_id)
FROM Feed F
INNER JOIN Seller S on S.seller_id=F.seller_id
WHERE F.end_date>=CURDATE()
GROUP BY S.seller_id
這取決於您要使用的功能的確切業務要求。
您只需要表Feed,在選擇結束日期大於當前日期的項目后,將按id_seller分組。 然后通過您選擇的某些聚合函數(此處為max())選擇唯一的item_id。 這是您要求的一個例子:
SELECT
F.seller_id,
max(F.itemid)
FROM
Feed F
WHERE
F.end_date > CURRENT_DATE
GROUP BY
F.seller_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.