计算连接表时缺少条件
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 表时失败