- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
2 дня ломаю голову, как решить задачу оптимизированно, но не придумал.
Есть 2 таблицы. В одной - биды. Во второй, список действий, произведенных над бидами.
например во второй таблице для одного бида могут быть записи: создан бид, оплачен бид, отменен модератором и т.п.
В первой таблице есть время создания бида.
Если прошло 5 дней с момента создания бида, и над ним не было произведено действия оплаты, то надо поставить ему статус, отменен в первую таблицу.
Как можно вытащить список бидов для которых нет записи об оплате во второй таблице одним запросом. Ну или более менее оптимизированно.
Сейчас у меня только кроме как вытаскивать все и каждый проверять, ничего в голову не пришло.
Спасибо заранее.
Как можно вытащить список бидов для которых нет записи об оплате во второй таблице одним запросом. Ну или более менее оптимизированно.
LEFT Join-ом по ID-шнику
WHERE ... IS NULL
или
SELECT * from bid WHERE id
NOT IN (select DISTINCT id_bid from bid_payment)
Оптимизировать по обстановке (за период, или выбирать только с PK > $id_start)
итд
p.s. если в вопросе приводить структуру таблиц, есть шанс получить более конкретный ответ.
LEFT Join-ом по ID-шнику
WHERE ... IS NULL
или
SELECT * from bid WHERE id
NOT IN (select DISTINCT id_bid from bid_payment)
Оптимизировать по обстановке (за период, или выбирать только с PK > $id_start)
итд
p.s. если в вопросе приводить структуру таблиц, есть шанс получить более конкретный ответ.
Немного неверно описал похоже вторую таблицу.
Один ко многим.
1 таблица
|bid_id|title|status|
----------------------
|1|первый|complete|
|2|второй|in_progress|
2 таблица
|act_id|bid_id|action|
------------------------
|43|1|opened|
|44|2|funded|
|45|1|closed|
Как видно из таблиц, для бида 1, не было статуса funded в таблице 2. Значит бид №1 должен быть в вытащенных данных, а второй - нет, так как для него есть в таблице действие funded.
А имена таблиц тоже таблица1 и таблица2?
NOT IN (select DISTINCT id_bid from bid_payment)
Суть от этого не изменилась.. просто в условие проверку на `action`='funded' добавить нужно.
А имена таблиц тоже таблица1 и таблица2?
Суть от этого не изменилась.. просто в условие проверку на `action`='funded' добавить нужно.
Да. :) На самом деле я это понял уже из первого ответа. :) Спасибо вам большое!