问题标签 [not-exists]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 有没有办法使用 Hibernate 有条件地插入?
我们有一个表,其中每个更新值都有新行。主键由 ID 和时间戳组成。还有一个状态栏。对于特定的 ID,我们将有一行表示每次更新该值,我们使用具有最新时间戳的行来表示“当前”值。
我们有一个基于用户输入更新状态的过程。因此,当用户单击 UI 中的按钮时,将使用新状态和新用户 ID 创建一个新行。
如果两个用户同时单击该按钮,我们只是插入了两条新记录,其中一个将获胜(具有最新时间戳的那个)。我们希望避免让两个用户同时单击此按钮,而一个用户可能会在不知道他们踩到其他人的状态更改的情况下创建一个新行。在 Oracle 中,我们只需执行类似的操作并检查是否插入了一行(其中 PREVIOUS_KNOWN_MAX_TS 是用户查看页面时“当前”记录的 TS):
如果在用户查看页面和插入用户更新信息的时间之间有插入,则插入不会发生,我们会通过知道插入了零行来检测到这一点。
有没有办法在 Hibernate 中做到这一点,或者我们应该尝试做某种 SELECT FOR UPDATE 吗?
sql - 这个查询是否相同?不存在和左外连接公式
我想获取 ENI_MONITOR 的每条记录,它是孤儿。在 ENI_FLUSSI_HUB 中对应的记录不应该存在。这两个公式都正确吗?左外连接是怎么想的?
php - MySQL - NOT IN 产生不需要的结果
我有以下表格:
我想获取所有可添加为朋友的用户(在这种情况下,user_id
将1
有 3 个朋友要添加(2, 3, 5)
。但是,通过使用以下内容,SQL statement below
我只能(4)
添加 1 个用户:
但是当我以用户 4 身份登录时,这很有效,没有可添加的用户。这对我来说有点棘手。任何想法将不胜感激。
谢谢
sql - SQL:如果不存在则更新,否则删除
我目前正在尝试编写一个脚本,将用户的角色更改为另一个,而不在 SQL Server 数据库中创建重复项。
例如:
用户可能拥有多个角色。
我想更改它,以便角色 Y 中的所有用户现在都是角色 X 的成员,并且角色 Y 将不再存在:
通过将所有 Y 角色更新为 X,这可能会创建重复值;因此,如果新值不存在,我只需要更新,否则只需删除此值
sql - 将唯一值插入数据库 PGSQL/MSSQL
我正在尝试使用 insert into where not exists 在 MSSQL 和 Postgresql DB 中插入唯一记录。但是我收到了一个不正确的语法错误,如下所示。我究竟做错了什么?
错误: [Macromedia][SQLServer JDBC 驱动程序][SQLServer]关键字“WHERE”附近的语法不正确。
mysql - 如果表中不存在,则 MySQL SELECT 字段为 NULL
以下查询检索第 0 年的季度数据。此查询成功检索第 1、2 和 3 季度。
问题:无论该季度是否存在数据记录,我都需要返回所有四个季度的“结果”。
期望的解决方案:我想指示每个季度选择字段“如果没有记录存在,则返回 NULL”。这样,我的表将包含所有 4 个季度的结果,无论记录是否存在数据。
sql - SQL Server 选择没有匹配的有效记录的错误记录
我们有一个问题,我们的一张表中有 100,000 条错误记录。这些错误记录很容易识别,因为它们的主键只有 8 位而不是 10 位长。
我遇到的问题是有 2,000 条有效记录具有匹配的错误记录(即一个人有一个有效的地址记录和一个错误的地址记录)。因此,我只想选择没有匹配有效记录的错误记录。
例如,一个人的地址记录包含该人的 ID 及其地址类型。因此,有效记录的主键是1234567HOM
该人的家庭住址。错误记录的主键为1234567H
(请理解我们遇到此问题的真实表不是地址表。我正在使用地址表示例来保护我们的信息。)
因此,我能够使用以下 SQL 选择所有也具有有效记录的错误记录:
这为我们提供了包含有效记录的 2,000 条错误记录的列表。然而,我们真正需要的是一个没有有效记录的错误记录列表。我试图通过添加NOT EXISTS
代码来获取它们:
不幸的是,这完全没有为我提供任何记录。如果我将“AND NOT EXISTS”更改为“AND EXISTS”,我会得到所有 100,000 条错误记录,包括我不想要的 2,000 条记录。
有谁知道我如何选择所有没有有效记录的错误记录?
编辑
问题澄清:只有一个 Person_Address 表,其中包含错误和有效记录。我选择了同一个 Person_Address 表两次,只是给它不同的名称,因为我想找到与有效记录不对应的错误记录。
例如,John Smith 有两条地址记录,1234567HOM(这是一条有效记录)和 1234567H(这是一条错误记录)。Judith Roger 只有一个有效记录 2222222HOM。赛斯亚当斯只有一个错误记录,3333333H。我想创建一个只检索 Seth Adams 记录的查询。
因此,即使 John Smith 有错误记录,我也不想检索他的错误记录,因为他也有有效记录。
sql - SQL 中的 NOT EXISTS 子句
我一直在查询,我真的无法思考执行是如何发生的,任何帮助将不胜感激:
该查询旨在查找从事所有项目的员工的详细信息。
查询是:
数据库结构是:
带有列的表项目:
Pname、Pnumber、位置和 dnum
带有列的表works_on:
ESSN、PNO 和 HOURS
表 Employee 与列:
Fname,minit,Lname,SSN,Bdate,address,sex,salary,superssn 和 dno
如果有人能用简单的话解释这个查询是如何执行的,那将非常有帮助。
sql - 不存在的性能 - t-sql 查询
此(为简单起见而修改)查询是更大查询的一部分,并与其他选择在日期上连接。但是,我已将此部分固定为狗慢。假设我有一个 UserLoginHistory-table 记录用户的每次登录。对于每个用户,我想要他们首次登录的日期。(稍后在查询中,我按 LogDate 分组以获取每天有多少首次登录。)
显然 NOT EXISTS 部分是慢的。但我不知道如何用更有效的方法来代替它。
使用较小的 UserLogHistory-count,性能没有问题。当我达到 15 000 左右时,它开始变慢。也许我应该将每天的结果批处理到另一个表中,但我想为这个查询找到一个更好的解决方案,因为应该有一个......
谢谢你的时间!
sql - 左连接查询而不是不存在
我有一个执行不佳的“不存在查询”。所以我认为“左连接查询”会执行得更好,但事实并非如此。我在 VBA 中运行这些查询。
这是我的“不存在查询”
这是我试图达到相同结果但使用“左连接查询”的方式
为什么“左连接查询”的性能较差?我以为它会更快。我有相同查询的第三个版本,但使用“不在”。该查询与“不存在查询”非常相似,我认为我不需要在这里发布它。
任何人都可以提出更好/更快的“左连接查询”吗???