Я использую следующую команду sql для поиска некоторых записей.Informix sql поиск внешних таблиц соединения
select con.type, con.contract_id, con.account, chk.account, chk.check_flags
from contract_scan_image con, outer check_customer_info chk
where con.type='AP' and con.account=chk.account
и получил результат, как указано ниже.
type contract_id account account check_flags
AP 1413178 03071800181
AP 1413774 03071800569
AP 1414218 03071800810
AP 1415937 03071900602 03071900602 000000222010000000000000000000
AP 1417948 03072000524 03072000524 000000222010000000000000000000
AP 1417999 03072000555
AP 1418203 03072000667 03072000667 000000222010000000000000000000
AP 1418216 03072000672 03072000672 000000220010000000000000000000
......
Почему записи все еще найдены, даже если в поле «ничего не найдено» из таблицы?
Потому что это именно то, что 'OUTER' присоединиться делает; сохраняет строки, даже если не было соответствия. Если вам нужны только результаты, в которых есть совпадение, используйте 'INNER JOIN' * (Кроме того, я настоятельно рекомендую не использовать нотацию«, »для объединений, поскольку она была заменена стандартом ANSI92, как в 1992 году, более 20 лет назад ... Поиск в Интернете для 'INNER JOIN') * – MatBailie
Получил подарок. Это все мое понятие неправильно ... Тем не менее, я нашел, что sytax внутреннего соединения в informix должен быть таким: выберите con.type, con.contract_id, con.account, chk.account, chk.check_flags from contract_scan_image con , check_customer_info chk где con.type = 'AP' и con.account = chk.account – Johnny
Вы уверены, что INFORMIX не поддерживает INNER JOIN? Это синтаксис, введенный с 1992 года ... – MatBailie