# search for im_network
@search_msgs = $schema->resultset('Message')->search(
{
'from_user.im_network' => 'Yahoo',
},
{ join => 'from_user' },
);
ok (scalar @search_msgs == 2, 'join message to user');
# search for receiving_user
@search_msgs = $schema->resultset('Message')->search(
{
'user.im_username' => 'linux_rohan',
},
{ join => { conversation => { 'users' => 'user' } } },
);
ok (scalar @search_msgs == 2, 'join message to users');
####
SELECT me.id, me.conversation, me.from_user, me.message, me.timestamp FROM message me JOIN user from_user ON ( from_user.id = me.from_user ) WHERE ( from_user.im_network = ? ): 'Yahoo'
SELECT me.id, me.conversation, me.from_user, me.message, me.timestamp FROM message me JOIN conversation conversation ON ( conversation.id = me.conversation ) LEFT JOIN conversation_user users ON ( users.conversation = conversation.id ) LEFT JOIN user user ON ( user.id = users.user ) WHERE ( user.im_username = ? ): 'linux_rohan'
####
{ join => [
conversation => { 'users' => 'user' },
'from_user',
]};