多对多关系的3表之间的SQL查询

2024-02-21

我有三张桌子:friends, locations, friend_location

friend_location是一个连接表,允许多对多关系friends and locations,所以表格看起来像这样:

Friends


ID  | Name
1   | Jerry
2   | Nelson
3   | Paul

location


ID  | Date       | Lat   | Lon 
1   | 2012-03-01 | 34.3  |  67.3
2   | 2011-04-03 | 45.3  |  49.3
3   | 2012-05-03 | 32.2  |  107.2

朋友位置


Friend_ID  | Location_id
1          |  2
2          |  1
3          |  3
2          |  2

我想做的是获取每个朋友的最新位置。

Results


ID  | Friend | Last Know Location  | last know date
1   | Jerry  |  45.3 , 49.3        | 2011-04-03
2   | Nelson |  34.3 , 67.3        | 2012-03-01
3   | Paul   |  32.2 , 107.2       | 2012-05-03

这是我在查看各种示例后尝试过的方法,但它返回许多结果并且不正确:


    select f.id , f.name , last_known_date
    from friends f, (

    select distinct fl.friend_id as friend_id, fl.location_id as location_id, m.date as last_known_date
    from friend_location fl

    inner join (
        select location.id as id, max(date) as date
        from location
        group by location.id
    ) m

    on fl.location_id=m.id

    ) as y
    where f.id=y.friend_id

任何建议将不胜感激。


你可以这样做:

SELECT  f.id, f.name, last_known_date, l.Lat, L.Lon
from Friends f
join
(
    select  f.id, MAX(l.Date) as last_known_date
    from    Friends f
    JOIN    Friend_Location fl on f.ID = fl.Friend_ID
    JOIN    Location l on l.ID = fl.Location_ID
    GROUP BY f.id
) FLMax
on FLMax.id = f.id
join Friend_Location fl on fl.friend_ID = f.ID
join Location l on fl.location_ID = l.ID AND l.Date = FLMax.Last_Known_Date

基本上,您的问题是您按 location.id 进行分组,这将为您提供所有位置,因为 ID 是唯一的。

仅当好友任意 1 次只能出现在 1 个地点时,此功能才有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多对多关系的3表之间的SQL查询 的相关文章

  • 使用 SQL Server 作为具有多个客户端的数据库队列

    给定一个充当队列的表 如何最好地配置表 查询 以便多个客户端同时处理队列 例如 下表指示了工作人员必须处理的命令 当worker完成后 它会将处理后的值设置为true ID COMMAND PROCESSED 1 true 2 false
  • 使用外部硬盘写入和存储 mysql 数据库

    我已经设置了 mysql 数据库在我的 Mac 上使用 java 和 eclipse 运行 它运行得很好 但现在我将生成大约 43 亿行数据 这将占用大约 64GB 的数据 我存储了大量的密钥和加密值 我有一个 1TB 外部我想用作存储位置
  • 如何在一列中存储数组或多个值

    运行 Postgres 7 4 是的 我们正在升级 我需要将 1 到 100 个选定项目存储到数据库的一个字段中 98 的情况下 只会输入 1 个项目 而 2 的情况下 如果是这样的话 会输入多个项目 这些项目只不过是文本描述 截至目前 长
  • 在 SQL Server 中选择条件的值[重复]

    这个问题在这里已经有答案了 在查询选择中 我想显示字段是否满足条件的结果 想象一下我有一张名为stock 该表有一列告诉我库存中每种商品的数量 我想做的是这样的 SELECT stock name IF stock quantity lt
  • 在 Oracle 中创建数据库链接时出错

    我有两个数据库 需要编写跨数据库查询 所以我试图创建一个数据库链接 CREATE PUBLIC DATABASE LINK DBLink CONNECT TO SchemaName IDENTIFIED BY 123 using DBNam
  • 动态/条件 SQL 连接?

    我在 MSSQL 表 TableB 中有数据 其中 dbo tableB myColumn 在特定日期后更改格式 我正在做一个简单的连接到该表 Select dbo tableB theColumnINeed from dbo tableA
  • 在tomcat中显示Spring-security的SQL错误

    我使用 spring security 框架创建了一个 Web 应用程序 我设置了一个数据库来存储用户及其角色 但 tomcat 给出以下错误 17 sep 2010 11 56 14 org springframework beans f
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • 将两个sql查询合并为一个查询

    如何组合以下 2 个查询以便获得两列 PAYMODE 和付款类型 两个查询都很相似 并且针对同一个表 将两个 sql 查询合并为一个查询 这样我就不需要执行两个单独的查询 SELECT ETBL DESC TXT as PAYMODE FR
  • 如何比较表中最后一个和倒数第二个条目的值?

    我在 Oracle 中有一个名为quotes 的表 其中包含两列 date 和value 我想比较表中最后一个条目和倒数第二个条目的值 在此示例中 我想获取日期13 1 和 11 1在一行中以及每个日期的值之间的差异 10 5 5 报价表
  • Spring Data Jpa项目使用ManyToMany关系时生成查询

    我有以下实体映射 Entity Table name books public class Book implements Serializable ManyToMany JoinTable name books2categories jo
  • 检查一个日期是否与另一个日期相隔 24 小时或更长时间

    我正在使用Java中的compareTo方法来尝试检查某个日期是否大于或等于另一个日期之后的24小时 如何确定将日期与哪个整数进行比较 Use the Calendar http docs oracle com javase 7 docs
  • 使用子查询与 LEFT JOIN 一起选择 MAX 值

    我有一个获取搜索结果的查询 效果很好 查询成功示例 SELECT individuals individual id individuals unique id TIMESTAMPDIFF YEAR individuals day of b
  • 用于不规则时间序列的滚动窗口函数,可以处理重复项

    我有以下数据框 grp nr yr 1 A 1 0 2009 2 A 2 0 2009 3 A 1 5 2009 4 A 1 0 2010 5 B 3 0 2009 6 B 2 0 2010 7 B NA 2011 8 C 3 0 2014
  • sqlite 插入表中 select * from

    我需要在 Android 应用程序中将数据从一个表移动到另一个表 我想使用以下sql insert into MYTABLE2 select id STATUS risposta DATETIME now data ins from MYT
  • 动态 SQL 和 where case 哪个更好?

    我需要创建一个带有 12 个参数的存储过程 并使用这些参数的不同组合来过滤查询 所有 12 个参数都不是强制性的 就好像我传递 3 5 或 12 个参数取决于用户输入的搜索输入一样 我可以通过两种方式创建 即使用动态 SQL 查询或使用 C
  • 安全转义表名/列名

    我在 php 中使用 PDO 因此无法使用准备好的语句转义表名或列名 以下是我自己实现它的万无一失的方法 tn str replace REQUEST tn column str replace REQUEST column sql SEL
  • 包含当月所有日期的 PHP 数组 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试并且仍然想知道如何获得一个
  • 在单个查询中设置和选择?

    我想知道是否可以在单个查询中设置和选择 像这样的事情 SET LOCAL search path TO 1 SET LOCAL ROLE user SELECT from posts 你可以这样做 with some set as sele
  • 多个数据库连接

    我有三张桌子 categories content info and content The categories表包含类别的id及其 IDparent类别 The content info包含两列 entry id帖子的 ID 和cat

随机推荐

  • 如何查看 /bin/sh 指向的内容

    我正在阅读 bin sh 和 bin bash 之间的差异 并遇到了这个有趣的问题 答案 here https stackoverflow com questions 5725296 difference between sh and ba
  • PHP:如果!空&空

    所以我有这个表格 有2个字段 Youtube 和 链接 我想做的如果已经填写了YouTube 应该这样做 if empty youtube if pos false echo Du skal indtaste youtube et URL
  • 目前的iphone版本是否支持彩信? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以使用 iPhone SDK 发送图片消息 https stackoverflow com questions 5150271 is it possible to send a picture
  • 实体框架 ObjectContext 分享 - 优缺点

    在我的项目中 我使用实体框架 4 0 作为 ORM 将数据保存在 SQL Server 中 我的项目是应用程序的功能区 主窗体中有网格视图和导航树 其顶部有功能区面板 我的应用程序基本上是一个 CRUD UI 几乎没有业务逻辑 第一次使用
  • 位域元素的默认值

    在 C 11 中可以做 struct S int i 42 如果忘记初始化成员i它 默认初始化为 42 我刚刚尝试过 位域为 struct S int i 42 5 我正在得到 错误 预期为 在 标记之前 位域成员是否存在此功能 如果存在
  • JNI 的用处[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 获取文本字段中最常用的 10 个单词

    我有一个包含数千个文档的索引 每个文档都有一个全文字段 我想搜索所有这些字段并获取最常出现的 10 个最常见的单词 如果可能的话 我还想要一种在 Kibana 上可视化它的方法 实现此目的的最常见方法是使用keyword datatype
  • Drupal CCK 的复选框

    我是 Drupal 的新人 到目前为止很喜欢 我正在创建 CCK 自定义内容类型 我需要以复选框格式制作便利设施列表 所以我做了 文件类型 Text 小部件类型 复选框 单选按钮 和允许值列表 onsite dining 现场用餐 Meet
  • 如何在启动时运行命令?

    我试图弄清楚如何在启动时运行命令 就像我将其输入控制台一样 我在 Raspberry Pi 上使用 Rasbian 但我认为这个问题对于 Debian 来说通常是相同的 我尝试运行的命令是 sudo screen mono server e
  • Rails 6 无法连接到 AWS Elastic Beanstalk 预置的 RDS。 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”

    我在尝试向 Elastic Beanstalk 启动示例 Rails 6 应用程序时遇到了非常困难的情况 对于上下文 我遵循这些说明 将 RDS 添加到 Ruby 应用程序 https docs aws amazon com elastic
  • Python 中的线程队列挂起

    我正在尝试通过队列使解析器成为多线程 它似乎有效 但我的队列挂起 如果有人能告诉我如何解决这个问题 我将不胜感激 因为我很少编写多线程代码 此代码从 Q 中读取 from silk import import json import dat
  • 当父视图的任何子视图重绘时,如何触发父视图的重绘?

    背景 我写了一个基于 Android 的自定义视图LinearLayout我称之为ReflectingLayout 这个想法相当简单 在声明的任何子视图下面渲染反射效果ReflectingLayout e g 我通过覆盖来实现这一目标dis
  • C# NHibernate 简单问题

    我在用着NHibernate驱动存储库 Fluent映射并尝试使用Linq to NHibernate 但对于像这样的一些简单查询 Retrieve
  • 解析 HTML 内容时阻止 etree 解析 HTML 实体

    有没有办法阻止etree在解析HTML内容时解析HTML实体 html etree HTML amp html find body text 这给了我 但我想得到 本身 您始终可以对数据进行预处理 后处理 在输入 HTML 解析器之前将 替
  • 如何设置 10 点到 19 点每两小时执行一次 Cron 作业

    1 个月前我对此有一个疑问 那是1个小时的间隔 我得到了确切的答案 以下是旧问题的链接 如何设置从上午 9 00 到下午 6 00 周一至周五 每隔一小时执行一次 Cron 作业 https stackoverflow com questi
  • Python - Tkinter 文本大小未调整大小

    我正在尝试使用 Tkinter 制作一个可以调整大小的窗口 并且效果很好 但我希望字体大小也能按比例缩放 输入框的大小完美调整 但文本大小保持不变 我也可以更改输入文字大小吗 我该怎么做呢 先感谢您 这是到目前为止我的代码片段 defini
  • 压缩 XML 指标。

    我有一个客户端服务器应用程序 它通过 TCP IP 将 XML 从客户端发送到服务器 然后广播到其他客户端 我如何知道 XML 的最小大小可以通过压缩 XML 而不是通过常规流发送来保证性能改进 有什么好的指标或例子吗 Xml 通常压缩得很
  • 为什么有各种 JPEG 扩展名?

    在开发下载器时 我遇到了以下使用 Python 的情况mimetypes guess extension功能 In 2 mimetypes guess extension image jpeg strict False Out 2 jpe
  • 当 wifi 打开时,仅通过 Android 手机上的移动数据发送数据

    即使 wifi 已打开并连接到互联网 是否也可以通过移动数据以编程方式路由请求 我的应用程序需要调用运营商提供的服务 该服务只能通过移动数据使用 而且我认为要求关闭 wifi 不太方便 看一眼https developer android
  • 多对多关系的3表之间的SQL查询

    我有三张桌子 friends locations friend location friend location是一个连接表 允许多对多关系friends and locations 所以表格看起来像这样 Friends ID Name 1