Вот две таблицы:
TableA
Number, Text
----
1, Hello
1, There
1, World
TableB
Number, Text
----
1, Foo
1, Bar
1, Baz
Вот запрос, который присоединяется к ним:
SELECT * FROM TableA a INNER JOIN TableB b ON a.Number = b.Number
Вот результаты:
a.Number, a.Text, b.Number, b.Text
----------------------------------
1, Hello, 1, Foo
1, Hello, 1, Bar
1, Hello, 1, Baz
1, There, 1, Foo
1, There, 1, Bar
1, There, 1, Baz
1, World, 1, Foo
1, World, 1, Bar
1, World, 1, Baz
Это называется декартовым произведением; между A и B нет отображения 1: 1 или даже 1: Many, существует отображение Many: Many. Каждая строка в A соответствует каждой строке в B, в результате мы начали с 3 строк в A, 3 строк в B, если бы они были 1: 1, у нас был бы набор из 3 строк, но потому что каждый из 3 строки соответствуют еще 3-м строкам, мы получили результат в 9 строк (3 * 3).
Каждый раз, когда в одной из ваших таблиц есть строки, которые соответствуют более чем одной строке другой таблицы, в соответствии с вашим условием соединения, получаемый вами счетчик строк будет увеличиваться / умножаться