我有2個表傳輸和設備,其中可能有多個傳輸每件設備。我期待加入這兩個表格,並將project id
加入到這個表格中,併爲特定項目返回每件設備的最新轉移。加入2表與已知變量排序最大(日期)
transfers table:
tid, pid, eid, date
equipment table:
eid, ename
在我的功能我送變量$pid
理清只是存儲在轉賬表中的設備ID的特定項目ID的設備傳輸。
我有2個表傳輸和設備,其中可能有多個傳輸每件設備。我期待加入這兩個表格,並將project id
加入到這個表格中,併爲特定項目返回每件設備的最新轉移。加入2表與已知變量排序最大(日期)
transfers table:
tid, pid, eid, date
equipment table:
eid, ename
在我的功能我送變量$pid
理清只是存儲在轉賬表中的設備ID的特定項目ID的設備傳輸。
我覺得你的要求可能還是有點不清楚我,但只爲特定的PID返回最新的「傳送」 &「設備」行中,執行以下:
SELECT t.tid, t.pid, t.eid, e.ename, t.date
FROM transfers t
JOIN equipment e ON t.eid = e.eid
WHERE t.pid = ?
AND t.date = (SELECT MAX(t2.date) FROM transfers t2 WHERE t2.pid = ?)
讓我知道,如果這樣做,你希望它會做。如果沒有,請給我一些關於每個表中的行的更多信息。
希望這有助於
約翰。
SELECT *
FROM transfers NATURAL JOIN (
SELECT pid, eid, MAX(date) date
FROM transfers
WHERE pid = ?
GROUP BY eid
) t JOIN equipment USING (eid)
謝謝你的答案。我之前有過類似的查詢,但它仍然返回每個項目的所有設備傳輸。例如,我調用T40卡車投影NHS3,然後在3天后計劃PLB。查詢輸出兩個項目的T40卡車。我最初可能並不清楚它只需要輸出當前的設備。 – hatchet145
不完美,但它足以讓它變得有效,讓它起作用。這裏是我的最終代碼'SELECT t.tid,t.pid,t.eid,e.name,e.make,e.eqid,e.model,t.date FROM transfers t JOIN equipment e ON t.eid = e.eid WHERE t.pid = $ pid AND t.date =(SELECT MAX(t2.date)FROM傳輸t2 WHERE t2.eid = e.eid)' – hatchet145
很高興幫助! –