计算连接表时缺少条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算连接表时缺少条件相关的知识,希望对你有一定的参考价值。

我确定这并不难,但是我无法弄清楚单词来在线搜索答案。这是情况:

我有两个表,交易和交易明细。我需要修改在事务处理中加入表时没有特定值的记录。

Transaction           Transaction Detail

Tran ID tran_type     Tran ID   Tranhead_id
1       45              1           145
2       3               1           148
3       45              2           230
                        2           467
                        3           220
                        3           310

我需要通过tran_id联接这些表,然后选择tran_type 45的交易记录,这些交易记录在tranhead_id = 145的交易明细中没有匹配的记录。在这种情况下,tran_id 3将是唯一选择的记录。

答案

我将在此处使用一个存在子句:

SELECT t.*
FROM [Transaction] t
WHERE
    tran_type = 45 AND
    NOT EXISTS (SELECT 1 FROM [Transaction Detail] td
                WHERE td.[Tran ID] = t.[Tran ID] AND td.Tranhead_id = 145);
另一答案

如果您只是试图联接表,然后选择没有tran_type = 45和TranHead_id = 145的记录,那么您应该能够使用WHERE子句来实现。这样的事情应该起作用:

在JOIN子句之后:

WHERE transactions.tran_type = 45 AND transaction_details.tranhead_id != 145

您只需使用和UPDATE而不是SELECT即可更新满足相同条件的记录。

以上是关于计算连接表时缺少条件的主要内容,如果未能解决你的问题,请参考以下文章

用于查询 dynamodb 的 boto3 资源:查询条件缺少关键架构元素

PyTest-Django 在缺少 django_migration 表时失败

错误:连接中缺少已解决的属性

SQL Oracle 命令“缺少右括号”

客户端运行gpupdate /force,后提示原因是缺少到域控制器的网络连接

获取“ORA-00907:缺少右括号”,找不到错误