2012-06-28 3 views
0

Имея некоторые проблемы при получении моих здесь вокруг этого запроса & интересно, если кто может помочь:MySQL Query, как выбрать данные на основе условия в другой записи в одной таблице?

Я пытаюсь выбрать все tvv.value [ы] от modx_site_tmplvar_contentvalues ​​где tvv.tmplvarid = 1 и Т. Значение tvv.tmplvarid = 3 - это дата, которая больше или равна сегодняшнему значению.

Таким образом, каждый опубликованный файл modx_site_content.id, имеющий родительский элемент «24», будет иметь как минимум 2 записи в таблице modx_site_tmplvar_contentvalues ​​с tmplvarid из «1», значение которого будет разделяемым запятой, а другое с tmplvarid '3', который будет datestamp.

Мне нужно выбрать все значения из таблицы modx_site_tmplvar_contentvalues, где tmplvarid - «1» [список, разделенный запятой], где вторая запись tmplvarid равна «3» - это дата, которая больше, чем сегодня, и условия modx_site_content опубликованы = '1' и родительскими = '24'

Вот мой запрос [который не работает]

SELECT sc.id, sc.pagetitle, tvv.value, tvv.tmplvarid, tvv.id 
FROM modx_site_content sc 
left join modx_site_tmplvar_contentvalues tvv on tvv.contentid = sc.id 
where published = '1' 
and parent = '24' 
and (tvv.tmplvarid = '3' or tvv.tmplvarid = '1') 
and tvv.value >= curdate() 
group by sc.id 
order by sc.id 

Любая помощь?

ответ

1

Если я правильно понимаю, вы хотите получить данные, основанные на 2 условиях:

- tmplvarid = '1' 
- tmplvarid = '3' and value >= curdate() 

Если это так, попробуйте это:

SELECT sc.id, sc.pagetitle, tvv.value, tvv.tmplvarid, tvv.id 
FROM modx_site_content sc 
left join modx_site_tmplvar_contentvalues tvv on tvv.contentid = sc.id 
where published = '1' 
and parent = '24' 
and ((tvv.tmplvarid = '3' and tvv.value >= curdate()) or (tvv.tmplvarid = '1')) 
order by sc.id 

Поправьте меня, если я неправильно ваш вопрос.

+0

close, я пробовал почти точно это, но он возвращает обе строки из таблицы modx_site_tmplvar_contentvalues, мне нужна только строка, содержащая значения CSV [строки с tmplvarid из '1' –

+0

. Можете ли вы пояснить, условия, которые вы хотите получить? только tmpvarid = 1 достаточно или s.t еще? – Thinhbk

+0

Я попробую: каждый элемент в таблице modx_site_content будет иметь 2 записи [по крайней мере] в таблице modx_site_tmplvar_contentvalues. запись с tmplvarid из 3 - это дата, сообщающая мне о событии. Необходимые данные - это значение второй записи [tmplvarid = 1], где связанный tmplvarid = 3 в будущем. –

Смежные вопросы