sqlite3 内连接比较所有列
Posted
技术标签:
【中文标题】sqlite3 内连接比较所有列【英文标题】:sqlite3 inner join comparing all columns 【发布时间】:2015-10-30 15:25:53 【问题描述】:我有一个 sqlite 数据库,其中包含两个具有相同架构的表 t1、t2。这些表包含多个列 c1、c2、..、cn(超过 50 个)。 我试图找到两个表中存在且相同的整体。 我遇到的问题是一次比较所有列。显然,我不想明确比较每一列。两个表的示例:
SELECT t1.*
FROM t1
INNER JOIN t2
ON t1.c1 = t2.c1
AND t1.c2 = t2.c2
...
AND t1.cn = t2.cn
我想我可以使用 python 的 sqlite3 模块生成这个巨大的查询,但我想知道是否有更优雅的方法。
谢谢
【问题讨论】:
【参考方案1】:在compound SELECT 中,比较子查询中的所有列:
SELECT * FROM t1
INTERSECT
SELECT * FROM t2;
【讨论】:
【参考方案2】:Sqlite 应该支持NATURAL JOIN
,默认情况下通过所有“匹配”列连接。
SELECT
t1.*
FROM t1
NATURAL JOIN t2
【讨论】:
以上是关于sqlite3 内连接比较所有列的主要内容,如果未能解决你的问题,请参考以下文章