Рейтинг:0

Добавление условного сравнения двух столбцов в отношениях

флаг ma

Я пытаюсь сравнить значения при создании отношений. Когда я даю прямое значение, это работает отлично. но я хотел передать имя столбца с псевдонимом, чтобы получить требуемые результаты.

Это работает нормально

$this->запрос->add_where(
        $this->опции['группа'],
        db_and()
          ->условие("class.end_time", 1625047346, '<=')
    );

вывод
ГДЕ ((( (class.end_time <= 1625047346) ))И ...............

Это не работает. он принимает alias.column как значение

$this->запрос->add_where(
        $this->опции['группа'],
        db_and()
          ->условие("class.end_time", "class1.end_time", '<=')
    );

вывод
ГДЕ ((( (class.end_time <= 'class.end_time')) ))И ...............

Рейтинг:0
флаг ma

Я нашел решение. Я просто передал все условия в качестве дополнительного текста после присоединения, и это работает.

Вот как я передал текст при объединении двух таблиц. Вы можете передать дополнительный параметр при построении соединения в качестве пятого параметра.

класс mymodule_booking_classes_relationship расширяет views_handler_relationship {

    функция запроса () {
    
        $extra = "class.end_time <= class1.start_time";
        $extra .= "или class.start_time >= class1.end_time";

        $join3 = новое представление_присоединения;
        $join3->construct('class_table', 'node', 'nid', 'course_id', $extra, 'INNER'); 
        $this->alias = $this->query->add_relationship('class1', $join3, 'class1');

    }
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.