Добрый день,
Есть 2 таблицы:
m_bids
------------
idmc_points
------------
id
bid_id
time_start(int)
time_finish(int)
is_tart(bool)
Для одной записи в m_bids может быть только 2 записи в
mc_points. Первая запись в
mc_points - это отправная точка (
is_start(true)) , вторая точка - финиш.
time_start и time_finish определяются для точки старта - диапазон старта.
Необходимо получить все
m_bids, у которых
time_finish у точки старта больше , чем текущее время (конечная точка нас не волнует, т.к.
time_start и
time_finish у неё пусты). Что-то типа :
SELECT * FROM m_bids LEFT JOIN mc_points ON m_bids.id = mc_points.bid_id WHERE mc_pointsюtime_finish is not NULL AND mc_points.time_finish < 'x';
В связях для
Bids выставлено:
'points' => [self::HAS_MANY, 'Points', 'bid_id'],
Но мне нужно не в цикле проверку делать, а именно запрос
AR
Начал с этого:
$criteria = new CDbCriteria();
$criteria->join = 'LEFT JOIN mc_points ON `m_bids`.`id` = mc_points.bid_id';
$criteria->condition = 'mc_points time_finish IS NOT NULL AND time_finish < '.time();
$model = Bids::model()->published()->getAll($criteria);
Ловлю:
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42P01]: Undefined table: 7 ERROR: invalid reference to FROM-clause entry for table "m_bids"
LINE 1: ..._car_id" FROM "m_bids" "t" LEFT JOIN mc_points ON m_bids.id ...
^
HINT: Perhaps you meant to reference the table alias "t".. The SQL statement executed was: SELECT "t"."id", "t"."customer_id", "t"."driver_id", "t"."wish_price", "t"."views", "t"."name", "t"."name_kz", "t"."name_en", "t"."name_alias", "t"."description", "t"."description_en", "t"."description_kz", "t"."meta_d", "t"."meta_k", "t"."order_sort", "t"."sys_date", "t"."sys_date_update", "t"."sys_user", "t"."exist", "t"."urgency", "t"."shifr", "t"."name_full", "t"."name_full_kz", "t"."price_id", "t"."photo", "t"."status_id", "t"."category_car_id" FROM "m_bids" "t" LEFT JOIN mc_points ON m_bids.id = mc_points.bid_id WHERE (exist = 1) AND (mc_points.time_finish IS NOT NULL AND time_finish < 1441078315)m_bids - 100% идет таблицей для класса
Bids, что я делаю не так?