感谢阅读。
我有两张桌子。客户表和注释表。
用户可以根据他们选择的客户端制作单独的笔记。每个注释都是它自己的独特的数据库条目,绑定到clientID。
现在我正在尝试设计一个查询,它会向我提供最新的注释和所有客户信息。
编辑:我道歉,我知道我需要澄清这个陈述,因为它含糊不清。 我需要客户端表中每个客户端的最新备注现在我可以得到我想要的所有信息,除了我得到的笔记是最旧的而不是最新的。所有笔记都有一个noteID,我试图用来获取最新的笔记。
这是我目前使用的查询。
SELECT c.clientID, count(c.clientID), c.account_name, c.created_date, c.cert_verified, n.noteID, n.note_date, n.note_body
FROM clients c, notes n
WHERE c.clientID = n.clientID AND (SELECT max(n.noteID) from notes n)
GROUP BY c.clientID ASC
非常感谢任何想法。我找到了几个例子,但没有一个我们非常适用。
谢谢!
答案 0 :(得分:0)
您可以尝试以下方式:
SELECT c.clientID, count(c.clientID), c.account_name, c.created_date, c.cert_verified, n.noteID, n.note_date, n.note_body
FROM clients c, notes n
WHERE c.clientID = n.clientID AND
n.noteID in (SELECT max(nm.noteID) from notes nm where nm.clientId = c.clientID)
GROUP BY c.clientID ASC
干杯,
克里斯。
答案 1 :(得分:0)
尝试这样的事情:
SELECT c.clientID, count(c.clientID), c.account_name, c.created_date, c.cert_verified, n.noteID, n.note_date, n.note_body
FROM clients c, notes n
WHERE c.clientID = n.clientID
AND n.noteID = (SELECT max(n2.noteID) from notes n2)
AND n.note_date = (SELECT max(n2.note_date) FROM notes n2)
GROUP BY c.clientID ASC
您的查询未检查以确保noteID
EQUALS 表中的最大noteID
。此外,您可能在将子查询的别名命名为外部查询时遇到问题(在您的情况下,notes表在两个查询中都具有别名n
)。