我有以下问题:
SELECT count(*)
FROM User u
INNER JOIN NAME n
ON u.UserId = n.UserId
AND n.last = 'Joe';
--returns 1943
SELECT count(*)
FROM User u
WHERE u.UserId IN (
SELECT n.UserId
FROM NAME n
WHERE n.last = 'Joe'
);
--returns 1875
UserId是表User中的主键,表Name中的外键(不唯一) .
为什么连接查询返回的行多于嵌套的选择查询?它们不应该是一样的吗?
谢谢 .
1 回答
此查询的等效连接:
将会:
distinct
处理重复项 .