Re: Self Join query

2009-09-29 Thread Bert Van den Brande
Oops clicked 'send' by accident.

So what I meant was :

Hah it works ? Great :)

Yes Containable Behavior is a very important one.
Start using it on all your model from the start of your project , it will
save you a lot of queries and refactoring of code afterwards.


Glad I could help,
Bert

On Tue, Sep 29, 2009 at 1:11 PM, Bert Van den Brande wrote:

> Ha
>
>
> On Tue, Sep 29, 2009 at 12:44 PM, hunny wrote:
>
>>
>> Thanks Bert,
>>
>> It works perfectly fine. This is exactly what I was looking for.
>> While going through the manual, I had completely left the Behaviors
>> Section. I think its high time that I go through it.
>>
>>
>> On Sep 28, 4:53 pm, Bert Van den Brande  wrote:
>> > I typed this code out of the top of my head, but it might be worth a try
>> :
>> >
>> > $this->User->Behaviors->attach('Containable');
>> > $this->User->bindModel(array(
>> > 'hasOne' => array( // Model linking type is 'hasOne', this
>> > forces Cake to make joins
>> > 'UserB' => array( // User other name than 'User' to
>> avoid
>> > data arrays being mixed up in the result
>> > 'className' => 'User',
>> > 'foreignKey' => false, // Force conditions in query
>> as
>> > defined below
>> > 'type' => 'LEFT',
>> > 'conditions' => array('User.company_id =
>> > UserB.company_id'))
>> > )));
>> > $result = $this->User->find('all', array('conditions' =>
>> > array('User.id' => 2)));
>> >
>> > Friendly greetings,
>> > Bert
>> >
>> > On Mon, Sep 28, 2009 at 1:43 PM, Bert Van den Brande > >wrote:
>> >
>> > > I would use the Containable behavior here, combined with a custom
>> binding
>> > > that you attach on the fly.
>> >
>> > > Have no idea however how exactly to expres a self-join binding ... try
>> and
>> > > play around with it :)
>> >
>> > > On Mon, Sep 28, 2009 at 12:04 PM, hunny > >wrote:
>> >
>> > >> On Sep 28, 2:19 pm, Aivaras  wrote:
>> > >> > Hey, take a look at this:
>> > >>http://voveris.eu/2009/09/05/left-join-with-cakephp/Iam sure you find
>> > >> this
>> > >> > handy.
>> >
>> > >> > On Mon, Sep 28, 2009 at 12:04, hunny 
>> > >> wrote:
>> >
>> > >> > > Hi All,
>> >
>> > >> > > I am new to cakephp. I would like to execute the following SELF
>> Join
>> > >> > > query.
>> >
>> > >> > > SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
>> > >> > > ON A.id = 2 where A.company_id = B.company_id
>> >
>> > >> > > Could some one guide or refer some tutorials, on how to achieve
>> this
>> > >> > > in cake php.
>> >
>> > >> > > Thanks in advance
>> >
>> > >> Hi All,
>> >
>> > >> Bad me, I think should have explained my problem properly.
>> >
>> > >> Lets say following are the contents of my users table:
>> >
>> > >> id | name | company id
>> >
>> > >> 1 | abc | 123
>> > >> 2 | def | 123
>> > >> 3 | ghi | 124
>> > >> 4 | jkl | 123
>> >
>> > >> Now what I want is to retrieve, for a member (say 'abc') all the
>> > >> people who are working in the same company.
>> >
>> > >> Even though company_id is a foreign key, I am not interested in the
>> > >> data of that table. What you suggested above is how to get the data
>> > >> from the company table.
>> >
>> > >> The simple sql query if I want all the members working in same
>> company
>> > >> as id = 2 would be:
>> >
>> > >> SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
>> > >> ON A.id = 2 where A.company_id = B.company_id
>> >
>> > >> Since this includes JOIN with the table itself, I am not sure how to
>> > >> achieve using Association Type.
>> >
>> >
>> >>
>>
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Self Join query

2009-09-29 Thread Bert Van den Brande
Ha

On Tue, Sep 29, 2009 at 12:44 PM, hunny  wrote:

>
> Thanks Bert,
>
> It works perfectly fine. This is exactly what I was looking for.
> While going through the manual, I had completely left the Behaviors
> Section. I think its high time that I go through it.
>
>
> On Sep 28, 4:53 pm, Bert Van den Brande  wrote:
> > I typed this code out of the top of my head, but it might be worth a try
> :
> >
> > $this->User->Behaviors->attach('Containable');
> > $this->User->bindModel(array(
> > 'hasOne' => array( // Model linking type is 'hasOne', this
> > forces Cake to make joins
> > 'UserB' => array( // User other name than 'User' to avoid
> > data arrays being mixed up in the result
> > 'className' => 'User',
> > 'foreignKey' => false, // Force conditions in query
> as
> > defined below
> > 'type' => 'LEFT',
> > 'conditions' => array('User.company_id =
> > UserB.company_id'))
> > )));
> > $result = $this->User->find('all', array('conditions' =>
> > array('User.id' => 2)));
> >
> > Friendly greetings,
> > Bert
> >
> > On Mon, Sep 28, 2009 at 1:43 PM, Bert Van den Brande  >wrote:
> >
> > > I would use the Containable behavior here, combined with a custom
> binding
> > > that you attach on the fly.
> >
> > > Have no idea however how exactly to expres a self-join binding ... try
> and
> > > play around with it :)
> >
> > > On Mon, Sep 28, 2009 at 12:04 PM, hunny  >wrote:
> >
> > >> On Sep 28, 2:19 pm, Aivaras  wrote:
> > >> > Hey, take a look at this:
> > >>http://voveris.eu/2009/09/05/left-join-with-cakephp/Iam sure you find
> > >> this
> > >> > handy.
> >
> > >> > On Mon, Sep 28, 2009 at 12:04, hunny 
> > >> wrote:
> >
> > >> > > Hi All,
> >
> > >> > > I am new to cakephp. I would like to execute the following SELF
> Join
> > >> > > query.
> >
> > >> > > SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> > >> > > ON A.id = 2 where A.company_id = B.company_id
> >
> > >> > > Could some one guide or refer some tutorials, on how to achieve
> this
> > >> > > in cake php.
> >
> > >> > > Thanks in advance
> >
> > >> Hi All,
> >
> > >> Bad me, I think should have explained my problem properly.
> >
> > >> Lets say following are the contents of my users table:
> >
> > >> id | name | company id
> >
> > >> 1 | abc | 123
> > >> 2 | def | 123
> > >> 3 | ghi | 124
> > >> 4 | jkl | 123
> >
> > >> Now what I want is to retrieve, for a member (say 'abc') all the
> > >> people who are working in the same company.
> >
> > >> Even though company_id is a foreign key, I am not interested in the
> > >> data of that table. What you suggested above is how to get the data
> > >> from the company table.
> >
> > >> The simple sql query if I want all the members working in same company
> > >> as id = 2 would be:
> >
> > >> SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> > >> ON A.id = 2 where A.company_id = B.company_id
> >
> > >> Since this includes JOIN with the table itself, I am not sure how to
> > >> achieve using Association Type.
> >
> >
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Self Join query

2009-09-29 Thread hunny

Thanks Bert,

It works perfectly fine. This is exactly what I was looking for.
While going through the manual, I had completely left the Behaviors
Section. I think its high time that I go through it.


On Sep 28, 4:53 pm, Bert Van den Brande  wrote:
> I typed this code out of the top of my head, but it might be worth a try :
>
>         $this->User->Behaviors->attach('Containable');
>         $this->User->bindModel(array(
>             'hasOne' => array( // Model linking type is 'hasOne', this
> forces Cake to make joins
>                 'UserB' => array( // User other name than 'User' to avoid
> data arrays being mixed up in the result
>                     'className' => 'User',
>                     'foreignKey' => false, // Force conditions in query as
> defined below
>                     'type' => 'LEFT',
>                     'conditions' => array('User.company_id =
> UserB.company_id'))
>         )));
>         $result = $this->User->find('all', array('conditions' =>
> array('User.id' => 2)));
>
> Friendly greetings,
> Bert
>
> On Mon, Sep 28, 2009 at 1:43 PM, Bert Van den Brande wrote:
>
> > I would use the Containable behavior here, combined with a custom binding
> > that you attach on the fly.
>
> > Have no idea however how exactly to expres a self-join binding ... try and
> > play around with it :)
>
> > On Mon, Sep 28, 2009 at 12:04 PM, hunny wrote:
>
> >> On Sep 28, 2:19 pm, Aivaras  wrote:
> >> > Hey, take a look at this:
> >>http://voveris.eu/2009/09/05/left-join-with-cakephp/Iam sure you find
> >> this
> >> > handy.
>
> >> > On Mon, Sep 28, 2009 at 12:04, hunny 
> >> wrote:
>
> >> > > Hi All,
>
> >> > > I am new to cakephp. I would like to execute the following SELF Join
> >> > > query.
>
> >> > > SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> >> > > ON A.id = 2 where A.company_id = B.company_id
>
> >> > > Could some one guide or refer some tutorials, on how to achieve this
> >> > > in cake php.
>
> >> > > Thanks in advance
>
> >> Hi All,
>
> >> Bad me, I think should have explained my problem properly.
>
> >> Lets say following are the contents of my users table:
>
> >> id | name | company id
>
> >> 1 | abc | 123
> >> 2 | def | 123
> >> 3 | ghi | 124
> >> 4 | jkl | 123
>
> >> Now what I want is to retrieve, for a member (say 'abc') all the
> >> people who are working in the same company.
>
> >> Even though company_id is a foreign key, I am not interested in the
> >> data of that table. What you suggested above is how to get the data
> >> from the company table.
>
> >> The simple sql query if I want all the members working in same company
> >> as id = 2 would be:
>
> >> SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> >> ON A.id = 2 where A.company_id = B.company_id
>
> >> Since this includes JOIN with the table itself, I am not sure how to
> >> achieve using Association Type.
>
>
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Self Join query

2009-09-28 Thread Bert Van den Brande
I typed this code out of the top of my head, but it might be worth a try :

$this->User->Behaviors->attach('Containable');
$this->User->bindModel(array(
'hasOne' => array( // Model linking type is 'hasOne', this
forces Cake to make joins
'UserB' => array( // User other name than 'User' to avoid
data arrays being mixed up in the result
'className' => 'User',
'foreignKey' => false, // Force conditions in query as
defined below
'type' => 'LEFT',
'conditions' => array('User.company_id =
UserB.company_id'))
)));
$result = $this->User->find('all', array('conditions' =>
array('User.id' => 2)));


Friendly greetings,
Bert

On Mon, Sep 28, 2009 at 1:43 PM, Bert Van den Brande wrote:

> I would use the Containable behavior here, combined with a custom binding
> that you attach on the fly.
>
> Have no idea however how exactly to expres a self-join binding ... try and
> play around with it :)
>
>
> On Mon, Sep 28, 2009 at 12:04 PM, hunny wrote:
>
>>
>>
>>
>> On Sep 28, 2:19 pm, Aivaras  wrote:
>> > Hey, take a look at this:
>> http://voveris.eu/2009/09/05/left-join-with-cakephp/I am sure you find
>> this
>> > handy.
>> >
>> > On Mon, Sep 28, 2009 at 12:04, hunny 
>> wrote:
>> >
>> > > Hi All,
>> >
>> > > I am new to cakephp. I would like to execute the following SELF Join
>> > > query.
>> >
>> > > SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
>> > > ON A.id = 2 where A.company_id = B.company_id
>> >
>> > > Could some one guide or refer some tutorials, on how to achieve this
>> > > in cake php.
>> >
>> > > Thanks in advance
>> >
>> >
>>
>> Hi All,
>>
>> Bad me, I think should have explained my problem properly.
>>
>> Lets say following are the contents of my users table:
>>
>> id | name | company id
>>
>> 1 | abc | 123
>> 2 | def | 123
>> 3 | ghi | 124
>> 4 | jkl | 123
>>
>> Now what I want is to retrieve, for a member (say 'abc') all the
>> people who are working in the same company.
>>
>> Even though company_id is a foreign key, I am not interested in the
>> data of that table. What you suggested above is how to get the data
>> from the company table.
>>
>> The simple sql query if I want all the members working in same company
>> as id = 2 would be:
>>
>> SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
>> ON A.id = 2 where A.company_id = B.company_id
>>
>> Since this includes JOIN with the table itself, I am not sure how to
>> achieve using Association Type.
>>
>> >>
>>
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Self Join query

2009-09-28 Thread Bert Van den Brande
I would use the Containable behavior here, combined with a custom binding
that you attach on the fly.

Have no idea however how exactly to expres a self-join binding ... try and
play around with it :)

On Mon, Sep 28, 2009 at 12:04 PM, hunny  wrote:

>
>
>
> On Sep 28, 2:19 pm, Aivaras  wrote:
> > Hey, take a look at this:
> http://voveris.eu/2009/09/05/left-join-with-cakephp/I am sure you find
> this
> > handy.
> >
> > On Mon, Sep 28, 2009 at 12:04, hunny  wrote:
> >
> > > Hi All,
> >
> > > I am new to cakephp. I would like to execute the following SELF Join
> > > query.
> >
> > > SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> > > ON A.id = 2 where A.company_id = B.company_id
> >
> > > Could some one guide or refer some tutorials, on how to achieve this
> > > in cake php.
> >
> > > Thanks in advance
> >
> >
>
> Hi All,
>
> Bad me, I think should have explained my problem properly.
>
> Lets say following are the contents of my users table:
>
> id | name | company id
>
> 1 | abc | 123
> 2 | def | 123
> 3 | ghi | 124
> 4 | jkl | 123
>
> Now what I want is to retrieve, for a member (say 'abc') all the
> people who are working in the same company.
>
> Even though company_id is a foreign key, I am not interested in the
> data of that table. What you suggested above is how to get the data
> from the company table.
>
> The simple sql query if I want all the members working in same company
> as id = 2 would be:
>
> SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> ON A.id = 2 where A.company_id = B.company_id
>
> Since this includes JOIN with the table itself, I am not sure how to
> achieve using Association Type.
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Self Join query

2009-09-28 Thread hunny



On Sep 28, 2:19 pm, Aivaras  wrote:
> Hey, take a look at 
> this:http://voveris.eu/2009/09/05/left-join-with-cakephp/I am sure you find 
> this
> handy.
>
> On Mon, Sep 28, 2009 at 12:04, hunny  wrote:
>
> > Hi All,
>
> > I am new to cakephp. I would like to execute the following SELF Join
> > query.
>
> > SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> > ON A.id = 2 where A.company_id = B.company_id
>
> > Could some one guide or refer some tutorials, on how to achieve this
> > in cake php.
>
> > Thanks in advance
>
>

Hi All,

Bad me, I think should have explained my problem properly.

Lets say following are the contents of my users table:

id | name | company id

1 | abc | 123
2 | def | 123
3 | ghi | 124
4 | jkl | 123

Now what I want is to retrieve, for a member (say 'abc') all the
people who are working in the same company.

Even though company_id is a foreign key, I am not interested in the
data of that table. What you suggested above is how to get the data
from the company table.

The simple sql query if I want all the members working in same company
as id = 2 would be:

SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
ON A.id = 2 where A.company_id = B.company_id

Since this includes JOIN with the table itself, I am not sure how to
achieve using Association Type.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Self Join query

2009-09-28 Thread Aivaras
Hey, take a look at this:
http://voveris.eu/2009/09/05/left-join-with-cakephp/ I am sure you find this
handy.


On Mon, Sep 28, 2009 at 12:04, hunny  wrote:

>
> Hi All,
>
> I am new to cakephp. I would like to execute the following SELF Join
> query.
>
> SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
> ON A.id = 2 where A.company_id = B.company_id
>
> Could some one guide or refer some tutorials, on how to achieve this
> in cake php.
>
> Thanks in advance
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Self Join query

2009-09-28 Thread hunny

Hi All,

I am new to cakephp. I would like to execute the following SELF Join
query.

SELECT B.* FROM `users` AS A LEFT JOIN `users` AS B
ON A.id = 2 where A.company_id = B.company_id

Could some one guide or refer some tutorials, on how to achieve this
in cake php.

Thanks in advance

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---