通过 MySQL JOIN 仅选择最近的行
关于连接表以访问客户数据,您可能会遇到您想要的情况仅检索相关表中的最新条目。这在存储历史数据的场景中很常见。幸运的是,MySQL 提供了多种方法来实现此目的。
一种方法涉及在 WHERE 子句中使用相关子查询。此方法涉及引用父表别名以从子表中检索匹配的行。例如:
SELECT c.*, FROM client AS c LEFT JOIN client_calling_history AS cch ON cch.client_id = c.client_id WHERE cch.cchid = ( SELECT MAX(cchid) FROM client_calling_history WHERE client_id = c.client_id AND cal_event_id = c.cal_event_id )
此查询仅检索每个客户端的最新通话历史记录。
此外,您提到在 LIKE 谓词中使用 CONCAT。此用法在 MySQL 中有效,并允许您在连接的列值中搜索子字符串。
在初始查询中,您使用了 INNER JOIN,它从两个表中返回匹配的行。但是,您还对适当的 JOIN 类型表示不确定。这里有一个简短的解释:
选择正确的 JOIN 类型取决于您的具体查询要求。
以上是如何使用 JOIN 从 MySQL 中的相关表中仅选择最新行?的详细内容。更多信息请关注PHP中文网其他相关文章!