我有一个包含以下列的表; a,b,e和另一个表,包含c,d的table2。两个表都有一列name
。为什么我在使用内连接时得到不同的结果
我做了一个查询:
SELECT distinct a, b
from db.table
where e <>'65';
而且我说,1885年记录
然后,我需要从另一个表的详细信息(C,d)。我使用内部连接来获取这些附加信息。查询变成:
SELECT distinct a, b, c, d
from db.table
inner join db.table2
on table.name=table2.name2
where e <>'65';
现在,我期待着同样的结果,但有额外的列(C,D)。但是我得到了不同数量的结果:51144.请问任何人都可以解释为什么数字增加了,而我只是增加了更多列而没有改变条件?
'DISTINCT'是一个邪恶的操作符:-)而不是假装没有问题 - 它总是更好只写**正确的**查询不返回笛卡尔积 – zerkms 2012-08-15 05:01:22
@zerkms,完全一致,但你是否知道1多个连接,这不是笛卡尔积/交叉连接? – 2012-08-15 05:04:06
当我执行1:N实体查询我不希望结果集中的行数是因为它是在原来的1 - 实体查询:-) – zerkms 2012-08-15 05:08:16