Решил тут запрос набросать, который выведет все телефоны из всех заказов всех пользователей. При условии, что в профиле пользователя персональный телефон не заполнен.
Вот такой запрос получился. На выходе массив с ключами = ID пользователя, и значением = телефон.
$phones = array();
$res = $DB->query("SELECT V.*, O.`USER_ID`, U.`PERSONAL_PHONE` FROM `b_sale_order_props_value` V
LEFT JOIN `b_sale_order_props` P ON (V.`ORDER_PROPS_ID` = P.`ID`)
LEFT JOIN `b_sale_order` O ON (V.`ORDER_ID` = O.`ID`)
LEFT JOIN `b_user` U ON (O.`USER_ID` = U.`ID`)
WHERE P.`CODE` LIKE '%PHONE%' AND V.`VALUE` <> '' AND (U.`PERSONAL_PHONE` IS NULL OR U.`PERSONAL_PHONE`='');");
while ($row = $res->fetch()) {
$phones[$row['USER_ID']] = $row['VALUE'];
} |
Проверил на пару сотен тысяч заказов, отрабатывает достаточно шустро.
Да, запрос предназначался для дальнейшего обновления телефонов в профиле, поэтому такое условие, что в профиле телефон не заполнен. И код свойства содержит в себе в той или иной форме PHONE. Например, CLIENT_PHONE.
веть ваши цитаты даже в этот курс добавили.
"Вам будет легче, если я буду делать задачу 4 часа за 500руб./час, чем сделаю ее за час? :)"
С уважением, 500 рублевщик.