[英]Join two tables and get the latest date.
我是該表格的新手,希望我能得到一些很棒的幫助!
我有三張桌子
1 "companies"
ID
2 "log"
compid
datum (date)
3 "sales"
datumnow (datetime)
uppdaterad (datetime)
我想比較日志和銷售,並獲取最新或“最新”條目,並顯示表1中公司的ASC列表,每行僅一個公司。 (比較datum,datumnow和uppdaterad,並獲得公司中每個ID一行顯示的最高日期值)
#RESULT
Rover - 2012-01-15
Daniel - 2012-02-01
Damien - 2012-03-05
我已經為此苦苦掙扎了幾天,無法解決這個問題。 應用程式 任何幫助! 謝謝。
您可以使用GREATEST()
返回這三列中的最新日期。 假設您在sales
中還有與其他表格相關的另一列。 從上面顯示的結構中,關系尚不清楚。
SELECT
companies.ID,
GREATEST(log.datum, sales.datumnow, sales.uppdatedad) AS mostrecent
FROM
companies LEFT JOIN log ON companies.ID = log.compid
/* Assumes sales also has a compid column. Will edit if new info is posted */
LEFT JOIN sales ON companies.ID = sales.compid
WHERE log.userid='$userID' AND sales.seller='$userID'
對於每個公司的最大日期只有一行,請使用MAX()
聚合和GROUP BY
:
SELECT
companies.ID,
MAX(GREATEST(log.datum, sales.datumnow, sales.uppdatedad)) AS mostrecent
FROM
companies LEFT JOIN log ON companies.ID = log.compid
/* Assumes sales also has a compid column. Will edit if new info is posted */
LEFT JOIN sales ON companies.ID = sales.compid
WHERE log.userid='$userID' AND sales.seller='$userID'
GROUP BY companies.ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.