<blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Средствами DBIx::Class нельзя передать в запрос AND iv.lang_id = 2 именно в ON</blockquote>
<div><br></div><div>Условие объединения таблиц можно задавать самому</div><div><a href="http://search.cpan.org/~frew/DBIx-Class-0.08198/lib/DBIx/Class/Relationship/Base.pm#condition">http://search.cpan.org/~frew/DBIx-Class-0.08198/lib/DBIx/Class/Relationship/Base.pm#condition</a> </div>
<div><br></div><div>->has_many(</div><div>  t2 => ".....",</div><div>  { '<a href="http://self.id">self.id</a>' => 'foreign.key_id', 'foreign.lang_id' => 2})</div><br><div class="gmail_quote">
16 июля 2012 г., 17:51 пользователь Sergey Malochinskiy <span dir="ltr"><<a href="mailto:sergey.malochinskiy@gmail.com" target="_blank">sergey.malochinskiy@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Спасибо огромное!<br>
<br>
Такой запрос гораздо лучше, но я натолкнулся теперь на ограничение DBIx::Class<br>
<div class="im">SELECT i.key,  iv.value FROM t1 i LEFT OUTER JOIN t2 iv ON (iv.key_id<br>
= <a href="http://i.id" target="_blank">i.id</a> AND iv.lang_id = 2) ORDER BY i.key<br>
<br>
</div>Средствами DBIx::Class нельзя передать в запрос AND iv.lang_id = 2 именно в ON<br>
Рылся по спискам рассылки и нашел только один вариант создать<br>
DBIx::Class::ResultSource::View т.е. вписать запрос руками в вьюху...<br>
не очень нравится такое решение.<br>
<br>
Но может кому и пригодится...<br>
<br>
<br>
16 июля 2012 г., 15:59 пользователь Akzhan Abdulin<br>
<<a href="mailto:akzhan.abdulin@gmail.com">akzhan.abdulin@gmail.com</a>> написал:<br>
<div class="HOEnZb"><div class="h5">><br>
> SELECT i.key,  iv.value FROM t1 i LEFT OUTER JOIN t2 iv ON (iv.key_id = <a href="http://i.id" target="_blank">i.id</a> AND iv.lang_id = 2) ORDER BY i.key<br>
><br>
> 16 июля 2012 г., 15:53 пользователь Sergey Malochinskiy <<a href="mailto:sergey.malochinskiy@gmail.com">sergey.malochinskiy@gmail.com</a>> написал:<br>
>><br>
>> Здравствуйте.<br>
>><br>
>> Помогите пожалуйста постичь эту "странную" порой вещь.<br>
>><br>
>> Есть две таблички в MySQL, созданные и заполненные (см. data.sql во вложении).<br>
>><br>
>> Написал вот такой запрос для вытаскивания данных:<br>
>> SELECT i.key, (SELECT iv.value FROM t2 iv WHERE  iv.key_id = <a href="http://i.id" target="_blank">i.id</a> AND iv.lang_id = 2) as value<br>
>> FROM t1 i<br>
>> ORDER BY i.key<br>
>><br>
>> Т.е. нужно вывести значения поля key из t1, даже если нет value в t2.<br>
>> key;value<br>
>> btn_signin;NULL<br>
>> caption_signin;NULL<br>
>> label_username_signin;NULL<br>
>> message1_signin;NULL<br>
>> url_feedback;NULL<br>
>> url_help;Help<br>
>> url_recovery;NULL<br>
>> url_signin;NULL<br>
>> url_signout;NULL<br>
>> url_signup;NULL<br>
>> url_signup_long;NULL<br>
>><br>
>> Как теперь такой запрос выполнить через DBIx::Class ?<br>
>> Или может как-то преобразовать структуру таблиц... или запрос другой?!<br>
>><br>
>> Помогите пожалуйста.<br>
>><br>
>> --<br>
>> Best regards,<br>
>> Sergey Malochinskiy<br>
>> --<br>
>> Moscow.pm mailing list<br>
>> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
>><br>
><br>
><br>
> --<br>
> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
><br>
<br>
<br>
<br>
--<br>
Best regards,<br>
Sergey Malochinskiy<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Aleksandrov</div><br>