首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLITE3 + Python (我需要询问银行1表是否存在于银行2表中)

SQLITE3 + Python (我需要询问银行1表是否存在于银行2表中)
EN

Stack Overflow用户
提问于 2022-03-08 15:08:00
回答 1查看 47关注 0票数 0

我对python和sqlite3有一个疑问。

代码语言:javascript
复制
import sqlite3
conna= sqlite3.connect('db_a')
a = conna.cursor()

connb= sqlite3.connect('db_b')
b = conna.cursor()

我不知道如何问银行之间的关系问题,有人能指点我吗?我不想使用DEF,只是假设变量的选择代码

代码语言:javascript
复制
query = """SELECT COL1 FROM TABLE1.DB_A WHERE NOT EXISTS (SELECT COL1 FROM TABLE2.DB_B WHERE COL1.TABLE2.DE_B = COL1.TABLE1.DE_A)"""
cursor.execute(query)
records = cursor.fetchall()
for row in records:
    print(row[0])

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-30 15:34:36

如果表存在于不同的数据库中,则需要附加数据库语句将第二个数据库与连接到第一个数据库的连接对象一起使用:

代码语言:javascript
复制
import sqlite3

conn = sqlite3.connect('db_a')
cursor = conn.cursor()

attach = "ATTACH DATABASE 'db_b' AS db_b;"
cursor.execute(attach)

query = """
SELECT t1.COL1 
FROM TABLE1 AS t1 
WHERE NOT EXISTS (
            SELECT t2.COL1 
            FROM db_b.TABLE2 AS t2 
            WHERE t2.COL1 = t1.COL1
        )
"""
cursor.execute(query)

records = cursor.fetchall()
for row in records:
    print(row[0])

detach = "DETACH DATABASE db_b;"
cursor.execute(detach)

另外,与EXISTS不同,您可以使用EXCEPT,区别是EXCEPT只返回不同的结果:

代码语言:javascript
复制
query = """
SELECT COL1 FROM TABLE1 
EXCEPT
SELECT COL1 FROM db_b.TABLE2
"""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71397224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档