- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
情况概览
当前的问题是关于从表A( Material )和表B(MaterialRevision)两个表中选择值的问题。但是,表 A 的 PK 可能存在或可能不存在于表 B 中。当它不存在时,此问题中描述的查询将不会返回表 A 的值,但它应该。所以基本上这是发生了什么:
查询仅在 A.id 存在于 B.id 中时才返回值,事实上,当 A.id 也不存在于 B.id 中时,我需要它从 A 返回值。
问题:
假设有两个表。表 Material 和表 Material 修订。请注意,PK idMaterial 是 MaterialRevision 中的 FK。
查询目标
Obs: remember these two tables are a simplification of the real tables.
对于每种 Material ,打印 Material 变量和来自 MaterialRevision 的最后一个 (MAX) RevisionDate。如果没有 RevisionDate,则打印空白 ("") 作为“最后修订日期”。
发生了什么错误
对于每种 Material ,打印 Material 变量和来自 MaterialRevision 的最后一个 (MAX) RevisionDate。如果 Material 没有修订,则不打印 Material (跳过)。
当前代码
SELECT
Material.idMaterial,
Material.nextRevisionDate,
Material.obsolete,
lastRevisionDate
FROM Material,
(SELECT MaterialRevision.idMaterial, max(MaterialRevision.revisionDate) as "revisionDate" from MaterialRevision
GROUP BY MaterialRevision.idMaterial
) AS Revision
WHERE (Material.idMaterial = Revision.idMaterial AND Material.obsolete = 0)
用于达到本题所述状态的引用和链接
Why is MAX() 100 times slower than ORDER BY ... LIMIT 1?
MySQL get last date records from multiple
MySQL - How to SELECT based on value of another SELECT
MySQL Query Select where id does not exist in the JOIN table
PS I hope this question is correctly understood since it took me a lot of time to build it. I researched a lot in stackoverflow and after several failed attempts I had no option but to ask for help.
最佳答案
你应该使用 JOIN
:
SELECT m.idMaterial, m.nextRevisionDate, mr.revisionDate AS "lastRevisionDate"
FROM Material m
LEFT JOIN MaterialRevision AS mr ON mr.idMaterial = m.idMaterial AND mr.revisionDate = (
SELECT MAX(ch.revisionDate) from MaterialRevision ch
WHERE mr.idMaterial = ch.idMaterial)
WHERE m.obsolete = 0
Here是对什么是 INNER JOIN
、LEFT JOIN
和 RIGHT JOIN
的解释。 (如果您经常在查询中交叉表,您会爱上它们)
由于 m.obsolete
永远为真,我在 SELECT
子句中省略了它
关于MYSQL - 当 DO 存在和不存在时进行 SubSelect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53068528/
我正在尝试获取有关某个特定人员的最新信息,并且我正在使用类似的查询 SELECT * FROM Table WHERE Name LIKE 'Peter' ORDER BY ID DESC LIMIT
我有一个视频 View ,正在播放视频。我想停止视频并在触摸视频 View 时返回。我想我必须这样做。 videoView.setOnTouchListener(new OnTo
假设您正在为某种目的(例如数据结构)制作一个经过严格测试的相当健壮的 API。其他人将在他们自己的编码项目中下载和使用您的库,因此您希望它非常密封。 在您的 API 中,您有许多这样的函数调用: vo
想知道是否有办法可以在没有构造函数的情况下渲染组件。 下面是我的 onClick 代码。我的目标是当您单击按钮时进行渲染以使按钮消失。我不确定是否有办法在不创建的情况下渲染它 constructor
我目前正在这样做。 有更好的方法吗? public Cursor selectRostersForTeam(Activity activity, int teamId) { final Str
我们遇到了遗留代码的问题。有一个“用户名”字段的验证集,验证它的长度并确保它至少包含一个字母: @Column(name = "username") @Size(min = 4, max = 40)
所以我有一个通过 .fetch() 填充的模型,我的问题是。它要么总是 PUT,要么总是 POST,但 .save() 永远不会表现得“智能”。 该模型是通过提取填充的,如果从提取返回任何内容,它最多
到目前为止,我已经能够为 Azure Functions 设置单元测试并且效果很好。但是对于我当前的项目,我需要使用动态或命令式绑定(bind)。 https://learn.microsoft.co
我有一个很大的本地文件。我想使用 boto 库将该文件的 gzip 版本上传到 S3。该文件太大,无法在上传前将其有效地 gzip 到磁盘上,因此应在上传期间以流式方式 gzip。 boto 库知道一
我正在使用 python 的 slumber 库对服务进行 HTTP 调用。这就是它的样子。我需要对此 URL https://sample-billing-api.test/2/billing-ac
使用 manifest v2 可以正常工作。但是使用 manifest v3 我收到错误“ReferenceError: localStorage is not defined” manifest.j
我是一名优秀的程序员,十分优秀!