У меня есть две таблицы X и Y , мне нужно общее количество строк, которые были закрыты (fd_sts_cd = 'C') сегодня (fulfill_date = CURRENT_DATE).
В БД есть данные
select *
from prdsbtmb_mbr_add_info
where fd_sts_cd = 'C' and mbr_id_no='9292138102'-> **12 rows**.
select *
from prdsbtfa_ffl_attempt
where nxt_ffl_dt = CURRENT_DATE and mbr_id_no='9292138102' -> **41 rows**
в то время как присоединиться к ним результат пришел по-другому
SELECT COUNT(*)
FROM X a, Y b
WHERE b.fulfill_date = CURRENT_DATE AND
a.id = b.id AND
a.fd_sts_cd = 'C' -> RESULT COUNT::**492**(12*41)
Я пробовал все соединения INNER, LEFF, OUTER JOININGS, но результат тот же.
Не могли бы вы объяснить мне
Как мы можем избежать этого декартова произведения и почему оно вычисляется именно так? И есть ли какое-либо решение, чтобы избежать этого, предложите мне?
Спасибо!!
mbr_id_no
? Должен ли он быть одинаковым для обеих таблиц? - person ffflabs   schedule 15.03.2017