mysql - 对于另一个表中的特定 ID,查找表中具有最高序列号的行
问题描述
我有 2 张桌子:
Table 1:
Job #
XLG24
ABC123
XYZ123
表 2:
Sequence # Job # Display Order
1 XLG24 1
2 XLG24 2
2 ABC123 1
3 ABC123 2
4 ABC123 3
4 XYZ123 1
我试图从表 2 中提取表 1 中的作业 # 和序列 #。但是,当我尝试时,它只提取表 1 中具有最高序列 # 的作业 #(在这种情况下只有序列 # 4)。
这是我的代码:
select * from TABLE2 where JOB# IN
(SELECT JOB# FROM table1)
and SEQUENCE# = (select max (SEQUENCE#) from Table2)
order by Display_order desc
我的代码的输出是这样的:
Sequence # Job #
4 ABC123
4 XYZ123
我希望它看起来像:
Sequence # Job #
2 XLG24
4 ABC123
4 XYZ123
因此,总而言之,我试图仅在表 2 中为表 1 中的特定 ID 找到具有最高序列号的行 有人可以提供任何建议吗?
解决方案
假设table1
有唯一的条目(工作编号只显示一次),并且table2
有多个条目(我确定这些都只是这篇文章的示例名称),那么我认为你想加入table1
然后table2
找到最大值.. 像这样:
SELECT t1.job# jobNum,max(t2.Sequence#) maxSeq
FROM table1 t1 LEFT JOIN table2 t2 ON t1.job#=t2.job#
这将包括所有条目table1
——即使它们没有在其中找到table2
——如果在其中找不到,table2
则将maxSeq
包含NULL
. 如果所有条目都在两个表中,或者您只希望在两个表中都找到所有条目,那么您将需要一个INNER JOIN
。
推荐阅读
- php - Laravel 作业队列,某些东西触发了两个 1615 错误
- javascript - 我需要一个特定的格式,来自 JavaScript Date 对象
- spring-boot - RSocket 连接可以持续多长时间?
- c++ - 如何在循环中替换输入
- laravel - 为 laravel 和 vuejs 创建套接字
- mysql - 如何仅使用几个单词从左开始更新列值 MySQL
- python - 将提取的列表项转换为python中的列表
- discord.py-rewrite - discord.py 如何让我的机器人加入特定的语音频道?
- c# - 如何在c#中获取下次的日期时间?
- javascript - 以编程方式获取 Svelte 组件实例