Привет, я застрял над запросом. Я хочу выполнить оператор соединения только тогда, когда условие в выражении if истинно, иначе не выполняйте соединение, а оставшийся запрос выполнить.mysql, если условие выполнено, а затем выполнить соединение иначе
Например, мой запрос, как это:
SELECT `t`.`id`, `t`.`title`, `t`.`date_created`, `t`.`video_id`, `t`.`audio_id`, `t`.`created_by`, `t`.`updated`, `t`.`gamenumber`, `t`.`cat_id`, `t`.`is_deleted`, `t`.`marked_by`, `t`.`is_hidden`, `t`.`battle_type`, `t`.`media` FROM `postdata` `t`
если t.video_id = '', то запустить присоединиться ЗАЯВЛЕНИЕ
left join processes as pv on (pv.video_id = t.video_id)
общее КУДА заявление в целом запрос
cat_id IS NOT NULL and is_deleted=0 and is_hidden=0 and battle_type="public" ORDER BY date_created
!
Оператор WHERE также требует этого условия, если t.video_id! = '' Then
pv.status=3
В принципе, если в таблице «postdata» содержится поле «video_id», содержащее идентификатор видео. В таблице «процессы» также содержатся эти видеоиды. Поэтому, если postdata.video_id не пуст, выполните команду join, чтобы проверить, содержит ли таблица процессов video_id статус = 3. (если статус = 3, то только выборка видеозаписей) в противном случае, если postdata.video_id пуст, тогда выполните запрос без утверждения объединения и общее предложение Where.
Пожалуйста, помогите.
почему бы не просто положить 'и т. video_id <> '' 'в предикате соединения. вы получите нулевые значения для строк, которые не совпадают. –
Как это связано с Yii? – crafter
@craafter, я упростил запрос в mysql. Я фактически работаю над Yii и использую CDbcriteria для выполнения этого запроса. –