ой, это опечатка была, я через ctrl+z возвращал старый код, чтобы скопировать сюда, и чуть переборщил. там конечно же один where был 100%.Shappy писал(а):Сейчас только внимательно посмотрел... Попробуйте из вашего запроса второго вместо такого:Оставить только один where, т.е. такой:Код: Выделить всё
$m = Post::find() ->joinWith('user') ->where('user_user.id >= blog_post.id') ->where(['>=', 'user_user.id', 'blog_post.id']) ->one();
Выдача та же будет? Ну и там нужен new Expression все же, т.е. такой:Код: Выделить всё
$m = Post::find() ->joinWith('user') ->where(['>=', 'user_user.id', 'blog_post.id']) ->one();
Код: Выделить всё
$m = Post::find() ->joinWith('user') ->where(['>=', 'user_user.id', new Expression('blog_post.id')]) ->one();
join и where
Re: join и where
Re: join и where
других то запросов debug нету? это все сказки.Shappy писал(а):Я перепроверил, для достоверности чуть поправил запросы...Код: Выделить всё
BidBanner::find() ->joinWith('user') ->where('`users`.`wallet` >= bid_banners.bid') ->where(['>=', '`users`.`wallet`', new Expression('bid_banners.bid')]) ->one()
Эти два запроса теперь вообще генерирую одинаковый sql:Код: Выделить всё
BidBanner::find() ->joinWith('user') ->where(['>=', '`users`.`wallet`', new Expression('bid_banners.bid')]) ->where('`users`.`wallet` >= bid_banners.bid') ->one()
я смотрю в дебаг-баре, сам sql не пишу;)Код: Выделить всё
SELECT `bid_banners`.* FROM `bid_banners` LEFT JOIN `users` ON `bid_banners`.`user_id` = `users`.`id` WHERE `users`.`wallet` >= bid_banners.bid
И точно выдача у меня разная... При первом запросе если вывести вардампом содержание у меня
["bid"]=>
string(5) "500.0"
...
["user"]=>
["wallet"]=>
string(5) "300.0"
При втором запросе у меня:
["bid"]=>
string(5) "555.0"
...
["user"]=>
["wallet"]=>
string(6) "1000.0"
Re: join и where
Ладно, тогда предлагаю забить... Это не критично в любом случае... Спасибо за уделенное время.
П.С. касательно других запросов, они есть, но они не касаются этих данных, ну кроме того что выполняет with для присоединения users.
П.С. касательно других запросов, они есть, но они не касаются этих данных, ну кроме того что выполняет with для присоединения users.
Re: join и where
юзайте andWhere
Re: join и where
и попробуйте задать алиас для таблиц в ручную