我有两个通过外键连接的表。在表 A 中,我试图获取时间列中的数据大于或等于表 B 开始列以及时间列中的数据小于或等于表 b 结束列的所有行。我在想内部连接可能适用于此,但是,结果不是我所期望的。它正在返回一些数据,但它们正在重复自己。
这是我所拥有的:
SELECT * FROM columnA
INNER JOIN columnB
ON columnA.time >= columnB.start
OR columnA.time <= columnB.stop
我看错了吗?内部连接是否是收集这些数据的正确方法?
更新:
实际上 tableA 的外键是连接到 tableB 上的主键。无论如何,我这样做了:
SELECT * FROM tableA
INNER JOIN tableB
ON tableA.time >= tableB.start
AND tableA.time <= tableB.stop
我没有做你所做的事情的原因是因为数据已经在数据库中存在几年了,而我最近刚刚添加了带有外键的列。所以该列中还没有任何数据。这就是我查询它的原因,以便我可以知道要使用信息更新哪些列。它将数据返回给我,但也返回了其他不符合要求的数据。