SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.03.2012 21:07:07

Asmy
Участник
Зарегистрирован: 17.03.2012
Сообщений: 1

Помогите составить запрос.

Есть 2 таблицы, posts и postmeta.
Есть дата в формате %d%m%Y в переменной.

http://dl.dropbox.com/u/59744984/mysql_question.jpg

Таблица posts связана c postmeta по posts.id и postmeta.post_id

begin_date и end_date образуют диапазон дат.

Каким запросом вытащить все записи из posts, в диапазон которых попадает дата из переменной?

Я понял, что можно нужно перевести всё в формат даты с помощью STR_TO_DATE, а потом воспользоваться BETWEEN, но как это сделать я не разобрался.

Заранее спасибо!

Неактивен

 

#2 17.03.2012 21:46:47

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите составить запрос.

select group_concat(post_id) from postmeta where (meta_key='begin_date' and mate_value<'03.02.2012') or (meta_key='end_date' and mate_value>'03.02.2012') group by post_id having count(*)=2; -- данный запрос даст вам список нужных post_id из таблицы postmeta

select * from posts where id in (список из предыдущего запроса);

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson