MySQL从两个数据库表中获取最新条目
谢谢你的阅读 我有两张桌子。客户机表和注释表 用户可以根据自己选择的客户端制作单独的笔记。每个注释都是它自己的数据库条目,与clientID绑定 现在我正试图设计一个查询,它将给我最新的笔记和所有的客户信息 编辑:很抱歉,我意识到我需要澄清这句话,因为它是模棱两可的。我需要客户端表中每个客户端的最新注释 现在我可以得到我想要的所有信息,除了我得到的是最旧的而不是最新的。所有笔记都有一个noteID,我正试图使用它来获取最新的笔记 这是我当前使用的查询MySQL从两个数据库表中获取最新条目,mysql,sql,database,Mysql,Sql,Database,谢谢你的阅读 我有两张桌子。客户机表和注释表 用户可以根据自己选择的客户端制作单独的笔记。每个注释都是它自己的数据库条目,与clientID绑定 现在我正试图设计一个查询,它将给我最新的笔记和所有的客户信息 编辑:很抱歉,我意识到我需要澄清这句话,因为它是模棱两可的。我需要客户端表中每个客户端的最新注释 现在我可以得到我想要的所有信息,除了我得到的是最旧的而不是最新的。所有笔记都有一个noteID,我正试图使用它来获取最新的笔记 这是我当前使用的查询 SELECT c.clientID, cou
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
任何想法都将不胜感激。我发现了几个例子,但没有一个是我们非常适用的
谢谢 您可以尝试以下方法:
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
干杯
克里斯。试试这样:
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
等于表中的maxnoteID
。此外,您可能会遇到将子查询的别名命名为与外部查询相同的名称的问题(在您的情况下,notes表在两个查询中的别名均为n
) count(c.clientID)
在多对一关系中只能是1-每个便笺大约是1个clientI am,使用count(c.clientID)确定每个客户端有多少便笺记录。因此,如果meouw在这个表中有10个注释条目,那么您的计数将是10等等……我甚至没有想到外部查询和内部查询具有相同的别名。谢谢你指出这一点@mike brant在我的答案末尾加一个空格的目的是什么?这与另一个答案有相同的问题。它只提供最新的客户端和注释。我需要所有客户的最新记录。