есть такой запрос, жадная загрузка
Код: Выделить всё
$data['event'] = Event::model()->notstarted()->
with(
array(
"markets" => array(
"scopes" => "visible_del_live",
"with" => array(
"marketTemplate" => array(
"with" => array(
"marketgrouptemplates" => array(
"scopes" => "del_head",
"joinType" => "INNER JOIN"
)
)
)
)
)
)
)
->findAll(array("condition" => "t.dt >= current_date"));
Код: Выделить всё
SELECT "t"."id" AS "t0_c0", "t"."tournament_id" AS "t0_c1",
"t"."dt" AS "t0_c2", "t"."stop_dt" AS "t0_c3", "t"."name" AS "t0_c4",
"t"."status_type" AS "t0_c5", "t"."status_desc_id" AS "t0_c6", "t"."locked"
AS "t0_c7", "t"."weigh" AS "t0_c8", "t"."del" AS "t0_c9", "t"."ut" AS
"t0_c10", "t"."enet_id" AS "t0_c11", "t"."tv_channel" AS "t0_c12",
"t"."max_bet" AS "t0_c13", "t"."max_payout" AS "t0_c14", "t"."margin" AS
"t0_c15", "t"."margin_prebet" AS "t0_c16", "t"."stop_loss" AS "t0_c17",
"t"."only_singles" AS "t0_c18", "t"."line_position" AS "t0_c19",
"t"."participant_block" AS "t0_c20", "t"."enet_stat_url" AS "t0_c21",
"t"."tv_channel_id" AS "t0_c22", "markets"."id" AS "t1_c0",
"markets"."event_id" AS "t1_c1", "markets"."market_template_id" AS "t1_c2",
"markets"."result_type_id" AS "t1_c3", "markets"."visible" AS "t1_c4",
"markets"."del" AS "t1_c5", "markets"."ut" AS "t1_c6", "markets"."max_bet"
AS "t1_c7", "markets"."max_payout" AS "t1_c8", "markets"."live_id" AS
"t1_c9", "markets"."suspend" AS "t1_c10", "markets"."staff_id" AS "t1_c11",
"markets"."weight" AS "t1_c12", "markets"."calc" AS "t1_c13",
"markets"."stop_loss" AS "t1_c14", "markets"."iplast" AS "t1_c15",
"markets"."suspend_reason" AS "t1_c16", "markets"."is_head" AS "t1_c17",
"marketTemplate"."id" AS "t2_c0", "marketTemplate"."name" AS "t2_c1",
"marketTemplate"."market_type_id" AS "t2_c2",
"marketTemplate"."outcome_types" AS "t2_c3", "marketTemplate"."del" AS
"t2_c4", "marketTemplate"."ut" AS "t2_c5", "marketTemplate"."weigh" AS
"t2_c6", "marketTemplate"."market_type_count" AS "t2_c7",
"marketTemplate"."multi_result" AS "t2_c8", "marketTemplate"."scope_data"
AS "t2_c9", "marketTemplate"."autocalc" AS "t2_c10",
"marketTemplate"."result_type_id" AS "t2_c11",
"marketTemplate"."autocalc_by_result" AS "t2_c12",
"marketTemplate"."scope_data_link" AS "t2_c13",
"marketTemplate"."name_format" AS "t2_c14", "marketgrouptemplates"."id" AS
"t3_c0", "marketgrouptemplates"."market_group_id" AS "t3_c1",
"marketgrouptemplates"."market_template_id" AS "t3_c2",
"marketgrouptemplates"."result_type_id" AS "t3_c3",
"marketgrouptemplates"."del" AS "t3_c4", "marketgrouptemplates"."sport_id"
AS "t3_c5" FROM "event" "t" LEFT OUTER JOIN "market" "markets" ON
("markets"."event_id"="t"."id") AND (markets.live_id is NULL AND
markets.del='no' AND markets.visible = 'yes' AND markets.suspend = 'no')
LEFT OUTER JOIN "market_template" "marketTemplate" ON
("markets"."market_template_id"="marketTemplate"."id") INNER JOIN
"market_group_template" "marketgrouptemplates" ON
("marketgrouptemplates"."market_template_id"="marketTemplate"."id") AND
(marketgrouptemplates.result_type_id is not null and
marketgrouptemplates.del = 'no') WHERE ((status_type='notstarted') AND
(t.dt >= current_date))
то есть я логично добавялю его здесь
Код: Выделить всё
->findAll(array("condition" => "t.dt >= current_date","limit"=>10));
Код: Выделить всё
WHERE ((status_type='notstarted') AND
(t.dt >= current_date)) LIMIT 10
Код: Выделить всё
SELECT "t"."id" AS "t0_c0", "t"."tournament_id" AS "t0_c1",
"t"."dt" AS "t0_c2", "t"."stop_dt" AS "t0_c3", "t"."name" AS "t0_c4",
"t"."status_type" AS "t0_c5", "t"."status_desc_id" AS "t0_c6", "t"."locked"
AS "t0_c7", "t"."weigh" AS "t0_c8", "t"."del" AS "t0_c9", "t"."ut" AS
"t0_c10", "t"."enet_id" AS "t0_c11", "t"."tv_channel" AS "t0_c12",
"t"."max_bet" AS "t0_c13", "t"."max_payout" AS "t0_c14", "t"."margin" AS
"t0_c15", "t"."margin_prebet" AS "t0_c16", "t"."stop_loss" AS "t0_c17",
"t"."only_singles" AS "t0_c18", "t"."line_position" AS "t0_c19",
"t"."participant_block" AS "t0_c20", "t"."enet_stat_url" AS "t0_c21",
"t"."tv_channel_id" AS "t0_c22" FROM "event" "t" WHERE
((status_type='notstarted') AND (t.dt >= current_date)) LIMIT 10
Код: Выделить всё
SELECT "t"."id" AS "t0_c0", "markets"."id" AS "t1_c0",
"markets"."event_id" AS "t1_c1", "markets"."market_template_id" AS "t1_c2",
"markets"."result_type_id" AS "t1_c3", "markets"."visible" AS "t1_c4",
"markets"."del" AS "t1_c5", "markets"."ut" AS "t1_c6", "markets"."max_bet"
AS "t1_c7", "markets"."max_payout" AS "t1_c8", "markets"."live_id" AS
"t1_c9", "markets"."suspend" AS "t1_c10", "markets"."staff_id" AS "t1_c11",
"markets"."weight" AS "t1_c12", "markets"."calc" AS "t1_c13",
"markets"."stop_loss" AS "t1_c14", "markets"."iplast" AS "t1_c15",
"markets"."suspend_reason" AS "t1_c16", "markets"."is_head" AS "t1_c17",
"marketTemplate"."id" AS "t2_c0", "marketTemplate"."name" AS "t2_c1",
"marketTemplate"."market_type_id" AS "t2_c2",
"marketTemplate"."outcome_types" AS "t2_c3", "marketTemplate"."del" AS
"t2_c4", "marketTemplate"."ut" AS "t2_c5", "marketTemplate"."weigh" AS
"t2_c6", "marketTemplate"."market_type_count" AS "t2_c7",
"marketTemplate"."multi_result" AS "t2_c8", "marketTemplate"."scope_data"
AS "t2_c9", "marketTemplate"."autocalc" AS "t2_c10",
"marketTemplate"."result_type_id" AS "t2_c11",
"marketTemplate"."autocalc_by_result" AS "t2_c12",
"marketTemplate"."scope_data_link" AS "t2_c13",
"marketTemplate"."name_format" AS "t2_c14", "marketgrouptemplates"."id" AS
"t3_c0", "marketgrouptemplates"."market_group_id" AS "t3_c1",
"marketgrouptemplates"."market_template_id" AS "t3_c2",
"marketgrouptemplates"."result_type_id" AS "t3_c3",
"marketgrouptemplates"."del" AS "t3_c4", "marketgrouptemplates"."sport_id"
AS "t3_c5" FROM "event" "t" LEFT OUTER JOIN "market" "markets" ON
("markets"."event_id"="t"."id") AND (markets.live_id is NULL AND
markets.del='no' AND markets.visible = 'yes' AND markets.suspend = 'no')
LEFT OUTER JOIN "market_template" "marketTemplate" ON
("markets"."market_template_id"="marketTemplate"."id") INNER JOIN
"market_group_template" "marketgrouptemplates" ON
("marketgrouptemplates"."market_template_id"="marketTemplate"."id") AND
(marketgrouptemplates.result_type_id is not null and
marketgrouptemplates.del = 'no') WHERE ("t"."id" IN ('129271', '129272',
'129273', '129274', '129275', '129276', '129277', '129278', '129279',
'129280'))