У меня есть follwing код:присоединиться и orwhere концы И
$_duplicates = $this->find()
->innerJoin(
['c' => 'contacts'], //alias
[
'Contacts.contactname != ' => '',
'Contacts.id < c.id',
'c.id > ' => 0
]
)
->select(['Contacts.id', 'Contacts.contactname', 'Contacts.legalname',
'c.id', 'c.contactname', 'c.legalname'])
->orWhere([
'LEVENSHTEIN(Contacts.contactname, c.contactname) <= ' => $distance,
'LEVENSHTEIN(Contacts.contactname, c.legalname) <= ' => $distance,
'LEVENSHTEIN(Contacts.legalname, c.contactname) <= ' => $distance,
'LEVENSHTEIN(Contacts.legalname, c.legalname) <= ' => $distance
]);
debug($_duplicates);
отладки есть дает следующий вывод:
SELECT Contacts.id AS `Contacts__id`, Contacts.contactname AS `Contacts__contactname`,
Contacts.legalname AS `Contacts__legalname`, c.id AS `c__id`,
c.contactname AS `c__contactname`, c.legalname AS `c__legalname`
FROM contacts Contacts
INNER JOIN contacts c
ON (Contacts.contactname != :c0 AND Contacts.id < c.id AND c.id > :c1)
WHERE (
Contacts.active = :c2
AND (
LEVENSHTEIN(Contacts.contactname, c.contactname) <= :c3
AND LEVENSHTEIN(Contacts.contactname, c.legalname) <= :c4
AND LEVENSHTEIN(Contacts.legalname, c.contactname) <= :c5
AND LEVENSHTEIN(Contacts.legalname, c.legalname) <= :c6
)
)
Любой язь, почему я получаю AND-s на Левенштейн звонки и не OR ? или Где-то должны создавать ОР-отношения, верно?