Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос по четырем таблицам 
:(
    Опции темы
Qbass
Дата 18.2.2011, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 7.10.2008

Репутация: нет
Всего: нет



Приветсвую.
Всю ночь промучался, выручайте.

Нужно составить запрос на выборку случайной рекламной площадки по четырем таблицам.

имеется такой запрос, который выбирает id случайной рекламной площадки
Код

<? 
$id = mysql_result(mysql_query("SELECT platform.id FROM platform JOIN platform_time ON (platform.id_user != $id_user && platform.graphic < 1 && platform.act > 0 && platform.balance > platform.pay && platform.id=platform_time.id_platform && platform_time.time=$hour) JOIN platform_operator ON (platform.id=platform_operator.id_platform && platform_operator.id_operator=$id_operator) ORDER BY RAND() LIMIT 1"), 0); 
?>


имеется ещё одна таблица в которой хранится $id_user и время перехода в Unix Timestamp, которые переходили по этой площадке.
К моему запросу нужно добавить ещё и условие:
Код

Если пользователь $id_user не переходил вообще по этой площадке 
или 
Если пользователь $id_user уже переходил и время последнего перехода(поле time) < time()


Структура этой таблицы:
Код

id | id_user | id_platform | time


Извиняйте, уж как смог объяснил =)
если что не понятно, то спрашивайте

Это сообщение отредактировал(а) Qbass - 18.2.2011, 12:24
PM MAIL   Вверх
solenko
Дата 18.2.2011, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 7
Всего: 67



Приблизительно так:
Код

SELECT platform.id
FROM platform INNER JOIN platform_time ON platform.id=platform_time.id_platform
              INNER JOIN platform_operator ON (platform.id=platform_operator.id_platform 
              LEFT JOIN user_log ON user_log.id_platform = platform.id 
                        AND user_log.time > $time AND user_log.id_user = $id_user
WHERE platform.id_user != $id_user 
    AND platform.graphic < 1 
    AND platform.act > 0 
    AND platform.balance > platform.pay 
    AND platform_time.time=$hour
        AND platform_operator.id_operator=$id_operator
    AND user_log.id_user IS NULL
ORDER BY RAND() 
LIMIT 1


И оформляйте нормально свои вопросы. Думаю, не один человек прошел мимо глядя на длиннющий запрос в одну строку.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.