Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL从两个数据库表中获取最新条目_Mysql_Sql_Database - Fatal编程技术网

MySQL从两个数据库表中获取最新条目

MySQL从两个数据库表中获取最新条目,mysql,sql,database,Mysql,Sql,Database,谢谢你的阅读 我有两张桌子。客户机表和注释表 用户可以根据自己选择的客户端制作单独的笔记。每个注释都是它自己的数据库条目,与clientID绑定 现在我正试图设计一个查询,它将给我最新的笔记和所有的客户信息 编辑:很抱歉,我意识到我需要澄清这句话,因为它是模棱两可的。我需要客户端表中每个客户端的最新注释 现在我可以得到我想要的所有信息,除了我得到的是最旧的而不是最新的。所有笔记都有一个noteID,我正试图使用它来获取最新的笔记 这是我当前使用的查询 SELECT c.clientID, cou

谢谢你的阅读

我有两张桌子。客户机表和注释表

用户可以根据自己选择的客户端制作单独的笔记。每个注释都是它自己的数据库条目,与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
任何想法都将不胜感激。我发现了几个例子,但没有一个是我们非常适用的


谢谢

您可以尝试以下方法:

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
等于表中的max
noteID
。此外,您可能会遇到将子查询的别名命名为与外部查询相同的名称的问题(在您的情况下,notes表在两个查询中的别名均为
n

count(c.clientID)
在多对一关系中只能是1-每个便笺大约是1个clientI am,使用count(c.clientID)确定每个客户端有多少便笺记录。因此,如果meouw在这个表中有10个注释条目,那么您的计数将是10等等……我甚至没有想到外部查询和内部查询具有相同的别名。谢谢你指出这一点@mike brant在我的答案末尾加一个空格的目的是什么?这与另一个答案有相同的问题。它只提供最新的客户端和注释。我需要所有客户的最新记录。