当前位置: 首页 > 面试题库 >

从主数据库选择SQL-明细表

许承悦
2023-03-14
问题内容

我有两个表,分别名为t_master和t_detail。

t_detail表中的数据对应于主表上的记录。

t_master的数据

ID Brand
1  Toyota
2  Honda

t_detail的数据

DetID ParentID Model
1     1        Corolla 2009
2     1        Corolla 2010
3     1        Corolla 2011
4     2        Civic 2004
5     2        Civic 2006

现在,我想进行一个查询,该查询应选择主表中的所有行,并同时选择具有最新ID(最大值)的明细,即

ID Brand  DetID ParentID Model
1  Toyota 3     1        Corolla 2011
2  Honda  5     2        Civic 2006

感谢你的帮助。谢谢。


问题答案:

使用:

SELECT m.id, 
       m.brand,
       x.detid,
       x.parentid,
       x.model
  FROM T_MASTER m
  JOIN T_DETAIL x ON x.parentid = m.id
  JOIN (SELECT d.parentid,
               MAX(d.detid) AS max_detid
          FROM T_DETAIL d
      GROUP BY d.parentid) y ON y.max_detid = x.detid
                            AND y.parentid = x.parentid


 类似资料:
  • 如何查询我的sql server以仅获取数据库的大小? 我用了这个: 我得到了这个: 它返回我几个列,我不需要,也许有一个技巧,从这个存储过程中选择database_size列? 我还尝试了这段代码: 它给了我这个结果: 所以我写了这个: 我得到:1183 所以它是有效的,但也许有一个合适的方法来得到这个?

  • 我使用以下列表从控制器填充了JSP中的下拉列表:“” 例如,我使用下拉菜单将5保存为db中thirdPartyOccupationId的值。当我重新加载页面时,值5不是选中的值。 同一段代码正在处理不同的字段,我不知道我错过了什么。 模型类: ReportClass.java 控制器.java 感谢任何指点。

  • 问题内容: 是否可以检索中特定行的特定列? 假设我要使用以下查询文本从名为的表中选择名称为:a,b的行: 如何修改此查询文本以仅选择第2、12、22、32、42列,而不是选择其所有1000列? 问题答案: 将通配符替换为要检索的列名。 但是请阅读有关SQL标准的文档。您在表中需要1.000列的可能性很小。

  • 问题内容: “我有一个交易表。在这个表中,我将交易日期时间存储在UTC中。我有几个月的数据,每天大约有20,000个交易。” 会如何变化 这样我就可以选择最活跃的特定年,月,日,时,分和秒。 需要澄清的是,我不是在寻找一天中哪几小时或哪几分钟最活跃。相反,哪个时间段最活跃。 问题答案: Select DATEPART(year, the_column) as year ,DATEPART(dayo

  • 问题内容: 我有一个称为Data的数据库,它是数据库中每个实体的父级。它包含Id等通用属性。然后,我有了一个扩展Data的实体,这也是由于其子类的通用功能而引起的。我的数据库中的映射是正确的。 这是我的等级制度的一个例子 并且表已正确映射: 无论如何,是否在数据库中查询所有作为Employee实例的Employee子类(FullTimeEmployee,PartTimeEmployee),而不在查

  • 我正试图从数据库表中检索最后一条记录。我的查询如下: MID是员工id代码,主键是id。 因为主键(在我的例子中)是整数,并且在每次插入记录时自动递增,所以我试图在主键的基础上获取最后一条记录,因为与其他记录相比,最后一条记录将具有最高值的主键。 但是我不能制定如何给出条件指定最高值的主键。我需要添加主键,如下所示: