我有两张桌子:A(525,968条记录)和B条(517,831条记录)。我想生成一个表,其中包含A中的所有行和来自B的匹配记录。两个表都有列“id”和列“year”。表A中id和year的组合是唯一的,但不在表B中。所以我写了以下查询:
SELECT
A.id,
A.year,
A.v1,
B.x1,
B.e1
FROM
A
LEFT JOIN B ON (A.id = B.id AND A.year = B.year);
我认为结果应该包含A中相同的记录总数,但它只返回大约517,950条记录。我想知道可能的原因是什么。
谢谢!
答案 0 :(得分:0)
首先,我知道这是一个例子,但是postgres可能会在表名中出现大写字母问题。
其次,检查525,968条记录的精确程度可能是一个好主意。问题是 - 如果您使用sime类型的数据库管理/查询客户端 - 它可能会向您显示有关表的不同/技术信息(postgres中可能存在实际上可能与记录数不同的内部行计数器)。
最后检查一下自己做的事情
SELECT
count("A".id)
FROM
"A"