我尝试在一个查询中从三个表中进行选择。 我选择的这三个sql表每个表有93行
import sqlite3
database = sqlite3.connect('F.tsj')
cursor = database.cursor()
cursor.execute("select Name, C1, C2, C3, NumofEpochs, HDop, VDop, NumOfGpsSats, SecondsFrom1970 from tblSoPoints, tblCrdGnssRaw, tblCrdRawMeas where keySoPoint and keyCrdGnssRaw = keyCrdRawMeas")
results = cursor.fetchall()
然后我尝试:
for line in enumerate(results):
print line
是什么给了我8648行,这是93 * 93或92 ** 2 当我在一个查询中只选择两个表时,一切正常,我得到93行 如何在一个查询中从三个表中进行选择,并在for循环期间从表中获取正确的行数,而不是乘以行数?
答案 0 :(得分:3)
而不是:
WHERE keySoPoint AND keyCrdGnssRaw = keyCrdRawMeas
我猜你的意思是:
WHERE keySoPoint = keyCrdRawMeas
AND keyCrdGnssRaw = keyCrdRawMeas
我还建议你开始使用JOIN语法,因为它不太可能在连接条件中出错:
SELECT Name, C1, C2, C3, NumofEpochs, HDop, VDop, NumOfGpsSats, SecondsFrom1970
FROM tblCrdRawMeas
JOIN tblCrdGnssRaw ON keyCrdGnssRaw = keyCrdRawMeas
JOIN tblSoPoints ON keySoPoint = keyCrdRawMeas
这提供了许多好处,包括更容易阅读和更容易修改以在需要时使用外连接。