J'ai deux tables dans un DB SQLITE (Tableau 1 et Tableau 2). J'ai besoin de déterminer quels éléments de la table 1 ne sont pas dans la table deux, puis imprimer les résultats. Je pense que je peux avoir un prototype fonctionnel, mais je ne connais pas trop SQL.Différences de tables SQLITE DB
import sqlite3
sqlite_file = 'data.db'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
c.execute("SELECT PK FROM Table1 WHERE NOT EXISTS(SELECT 1 FROM Table2 WHERE PK = Table1.pk)")
results = list(c)
count = len(results)
print(results)
print(count)
- Quelqu'un peut-il confirmer que cela ressemble à droite?
- Y a-t-il une meilleure façon de faire cela? Dans le cas contraire, toute aide serait appréciée
Merci! Et merci d'expliquer le "NOT IN" vs "EXISTS", cela prend tout son sens maintenant. – grigs
Une question rapide, si je voulais afficher la ligne entière plutôt que simplement col1, comment pourrais-je écrire cela? – grigs
hi @grigs, si vous utilisez la col1 dans la condition WHERE, je ferais quelque chose comme ceci 'SELECT * FROM table1 O WH col1 NOT IN (SELECT col1 FROM Table2)'. Si vous voulez être sûr qu'ils sont des données, pas des colonnes en particulier, je le ferais 'SELECT * FROM table1 O WH NON EXISTS (SELECT col1 FROM Table2)' –