我有2个桌子转移和设备,每个设备可能有多个转移。我希望将这两个表与 project id
连接起来,并为特定项目的每件设备返回最新的转移。
transfers table:
tid, pid, eid, date
equipment table:
eid, ename
在我的函数中,我正在发送变量$pid
,以便为转移表中存储了设备ID的特定项目ID的设备转移进行整理。
答案 0 :(得分:1)
SELECT *
FROM transfers NATURAL JOIN (
SELECT pid, eid, MAX(date) date
FROM transfers
WHERE pid = ?
GROUP BY eid
) t JOIN equipment USING (eid)
答案 1 :(得分:1)
我认为你的要求可能对我来说有点不清楚,但只返回最新的“转移”和特定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 = ? )
请告诉我这是否符合您的希望。如果没有,请给我一些关于每个表中行的信息。
希望这有帮助,
...约翰