• Как одним запросом сделать проверка на наличие записи перед insert по четырем полям?

    @vikweb Автор вопроса
    web-программирование и it-консультации
    Всем спасибо. Учел все предложения. Задача решена.
    1. Преобразовал поля ip_address (varchar(15)) и session_id (varchar(50))
    2. Добавил поле date_day (date)
    3. Запустил UPDATE `wp_views` SET `date_day` = DATE(`created_date`)
    4. Создал сложный уникальный ключ post_id-user_id-date_day-ip_address-session_id
    И все заработало
    Ответ написан
    Комментировать
  • Как в yii2 задавать сложные запросы на 4 таблицы?

    @vikweb Автор вопроса
    web-программирование и it-консультации
    1 решение.
    Создал с запросом новую таблицу представление
    CREATE
    VIEW mmm_tr_in_import_view
    AS SELECT in_import.*, user.id_user user_id, currency.id_currency currency_id
    FROM  `mmm_tr_in_import`  `in_import` 
    LEFT JOIN  `mmm_users`  `user` ON  `in_import`.`fulluserid` =  `user`.`fulluserid` 
    LEFT JOIN  `mmm_currency`  `currency` ON  `in_import`.`value_currency` =  `currency`.`value_currency`

    и связал ее со второй таблицей.

    2 решение (не проверял):
    создать связи релейшен с использованием
    $this->hasOne(TrInModel::className(), [ 'currency_id'=>'currency_id'])
      ->alias('duplicate')
      ->andOnCondition(" duplicate.paid_date_gmt =in_import.paid_date_gmt");
    Ответ написан
    Комментировать