从mysql数据库多个表中获取最新记录

里克·范·伊特苏姆(Rick van Ittersum)

我有三张桌子。一种带有用户详细信息:

---------------------------------
| Username | Phonenumber        |
---------------------------------
| user1    | 0000000000         |
---------------------------------
| user2    | 000000000          |
---------------------------------

表2包含联系信息,这是用户彼此“了解”时将其链接在一起的地方:

------------------------
| ID | User  | Friend  |
------------------------
| 1  | 1     | 2       |
------------------------
| 2  | 1     | 3       |
------------------------
| 3  | 3     | 2       |
------------------------

最后一个是包含位置信息的表:

----------------------------------------------------------
| ID | UserID  | TimeStamp         | Lng      | Lat      |
----------------------------------------------------------
| 1  | 1     | 2015-01-07 19:54:23 | lngvalue | latvalue |
----------------------------------------------------------
| 2  | 1     | 2015-01-07 19:54:26 | lngvalue | latvalue |
----------------------------------------------------------
| 3  | 2     | 2015-01-07 19:53:52 | lngvalue | latvalue |
----------------------------------------------------------

现在,我想从用户1的朋友中选择用户名和电话号码,以及联系用户的最新位置。

我创建了一个查询,但它向我显示了用户的最早的lng / lat值,而我却需要最新的。

SELECT user.Username, user.PhoneNumber, location.Lng, location.Lat
FROM contact, user, location
WHERE User.ID IN (SELECT contact.Friend FROM contact WHERE contact.User = 1) 
AND user.ID = location.UserID
GROUP BY user.Username
里克·范·伊特苏姆(Rick van Ittersum)

我对Randy的查询进行了较小的更改,因为我还可以通过检查位置表中的最高ID来选择最新记录。该查询对我有用:

SELECT user.Username, user.PhoneNumber, location.Lng, location.Lat
FROM contact, user, 
( select max(id) maxid, userid from location group by userid ) loc
, location
WHERE User.ID IN (SELECT contact.Friend FROM contact WHERE contact.User = 1) 
AND user.ID = loc.UserID
and location.id = loc.maxid
GROUP BY user.Username

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何编写查询以从数据库表中获取最新记录

从Core数据库获取最新记录

从数据库表获取最新数据

从单独的数据库的表中获取匹配多个字段的记录

更新或插入多个记录(如果不存在于mysql数据库的表中)

从 MySQL 数据库中获取基于多个电子邮件地址的多条记录

如何在codeigniter中查询(获取)mysql数据库的多个表作为单个表

从数据库表中获取随机记录,并在mysql中进行多次检查?

获取数据库表中的记录总数

从数据库表中获取记录,按月进行

记录后立即访问存储在数据库表中的“最新”记录

如何在多个表行中通过选择(mysql 数据库)获取动态值

从多个数据库的某个表中获取行数

如何从数据库的多个表中获取公共列?

T-SQL中的条件查询,用于从多个数据库和表中获取记录

SQL查询问题:并非从mysql数据库中的多个表中检索到所有记录

PHP:从mysql数据库获取json中的多个对象

从数据库获取最新记录的有效方法

如何从Firebase实时数据库获取最新记录

使用go从我的sqlite数据库中获取最新记录

从数据库表中读取(查找多个条件)记录,并使用匹配条件将其写入数据库表

获取表中的最新条目。数据库表的最后一行

从数据库中的表获取数据

在MySQL数据库中记录主值?

如何从数据库中的两个表中获取最新的 N 个条目?

从单个结果集中的多个数据库中检索相同名称表中的记录

如何将记录插入数据库中的多个表中

获取MySQL数据库中所有表的记录计数

如何在mysql数据库中加入两个表并获取记录。?