Sunday, February 10, 2013

Re: Find 'All' returns same record multiple times

You should specify event_id or so to `group` option for GROUP BY when using joins with multiple records. 
It is SQL matter.


2013/2/11 Michael Gaiser <mjgaiser@gmail.com>
I want to know what I can do so it only returns the event once. Thanks.


So here is my find parameters.

$this->Event->find('all', array(
'conditions'=>array('Location.id'=>4),
'joins'=>array(
array('table' => 'characters_events',
'alias' => 'Characters',
'type' => 'inner',
'conditions' => array(
'Event.id = Characters.event_id',
)
),
),
'contain'=>array(
'Location'=>array('id', 'name', 'parent_id', 'longitude', 'latitude','zoom'),
'EventsType'=>array('id', 'name', 
'Role'=>array('id', 'name', 'events_type_id'),
),
'Characters'=>array('id', 'role_id', 'character_id', 'description',
'Character'=>array('id', 'name'),
'Role'=>array('id', 'name'),
),
),
'fields'=>array(
'id',
'event_type_id',
'chronicle_id',
'location_id',
'start_date',
'end_date',
'description',
'created',
'modified'
);
));


And here is what it returns: (Its a bit long...  Basically it shows the same event record several times)

  array(  	(int) 0 => array(  		'Event' => array(  			'id' => '1',  			'event_type_id' => '2',  			'chronicle_id' => '1',  			'location_id' => '4',  			'start_date' => null,  			'end_date' => '735259',  			'description' => 'The birth of phobos was a great event..',  			'created' => '2013-01-25 22:13:32',  			'modified' => '2013-01-27 15:25:26'  		),  		'EventsType' => array(  			'id' => '2',  			'name' => 'Birth',  			'Role' => array(  				(int) 0 => array(  					'id' => '9',  					'name' => 'Father',  					'events_type_id' => '2'  				),  				(int) 1 => array(  					'id' => '8',  					'name' => 'Mother',  					'events_type_id' => '2'  				),  				(int) 2 => array(  					'id' => '7',  					'name' => 'Newborn',  					'events_type_id' => '2'  				)  			)  		),  		'Location' => array(  			'id' => '4',  			'name' => 'San Francisco',  			'parent_id' => '3',  			'longitude' => '-122.44',  			'latitude' => '37.7488',  			'zoom' => '11'  		),  		'Characters' => array(  			(int) 0 => array(  				'id' => '1',  				'role_id' => '7',  				'character_id' => '1',  				'description' => 'Love to live',  				'event_id' => '1',  				'Character' => array(  					'id' => '1',  					'name' => 'Phobos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			),  			(int) 1 => array(  				'id' => '2',  				'role_id' => '9',  				'character_id' => '26',  				'description' => 'Yo Dad!',  				'event_id' => '1',  				'Character' => array(  					'id' => '26',  					'name' => 'Alphonse Heisenberg'  				),  				'Role' => array(  					'id' => '9',  					'name' => 'Father'  				)  			),  			(int) 2 => array(  				'id' => '3',  				'role_id' => '8',  				'character_id' => '41',  				'description' => 'Hi Mom',  				'event_id' => '1',  				'Character' => array(  					'id' => '41',  					'name' => 'Roslin Bricker'  				),  				'Role' => array(  					'id' => '8',  					'name' => 'Mother'  				)  			),  			(int) 3 => array(  				'id' => '4',  				'role_id' => '7',  				'character_id' => '2',  				'description' => 'Hey Bro',  				'event_id' => '1',  				'Character' => array(  					'id' => '2',  					'name' => 'Deimos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			)  		)  	),  	(int) 1 => array(  		'Event' => array(  			'id' => '1',  			'event_type_id' => '2',  			'chronicle_id' => '1',  			'location_id' => '4',  			'start_date' => null,  			'end_date' => '735259',  			'description' => 'The birth of phobos was a great event..',  			'created' => '2013-01-25 22:13:32',  			'modified' => '2013-01-27 15:25:26'  		),  		'EventsType' => array(  			'id' => '2',  			'name' => 'Birth',  			'Role' => array(  				(int) 0 => array(  					'id' => '9',  					'name' => 'Father',  					'events_type_id' => '2'  				),  				(int) 1 => array(  					'id' => '8',  					'name' => 'Mother',  					'events_type_id' => '2'  				),  				(int) 2 => array(  					'id' => '7',  					'name' => 'Newborn',  					'events_type_id' => '2'  				)  			)  		),  		'Location' => array(  			'id' => '4',  			'name' => 'San Francisco',  			'parent_id' => '3',  			'longitude' => '-122.44',  			'latitude' => '37.7488',  			'zoom' => '11'  		),  		'Characters' => array(  			(int) 0 => array(  				'id' => '1',  				'role_id' => '7',  				'character_id' => '1',  				'description' => 'Love to live',  				'event_id' => '1',  				'Character' => array(  					'id' => '1',  					'name' => 'Phobos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			),  			(int) 1 => array(  				'id' => '2',  				'role_id' => '9',  				'character_id' => '26',  				'description' => 'Yo Dad!',  				'event_id' => '1',  				'Character' => array(  					'id' => '26',  					'name' => 'Alphonse Heisenberg'  				),  				'Role' => array(  					'id' => '9',  					'name' => 'Father'  				)  			),  			(int) 2 => array(  				'id' => '3',  				'role_id' => '8',  				'character_id' => '41',  				'description' => 'Hi Mom',  				'event_id' => '1',  				'Character' => array(  					'id' => '41',  					'name' => 'Roslin Bricker'  				),  				'Role' => array(  					'id' => '8',  					'name' => 'Mother'  				)  			),  			(int) 3 => array(  				'id' => '4',  				'role_id' => '7',  				'character_id' => '2',  				'description' => 'Hey Bro',  				'event_id' => '1',  				'Character' => array(  					'id' => '2',  					'name' => 'Deimos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			)  		)  	),  	(int) 2 => array(  		'Event' => array(  			'id' => '1',  			'event_type_id' => '2',  			'chronicle_id' => '1',  			'location_id' => '4',  			'start_date' => null,  			'end_date' => '735259',  			'description' => 'The birth of phobos was a great event..',  			'created' => '2013-01-25 22:13:32',  			'modified' => '2013-01-27 15:25:26'  		),  		'EventsType' => array(  			'id' => '2',  			'name' => 'Birth',  			'Role' => array(  				(int) 0 => array(  					'id' => '9',  					'name' => 'Father',  					'events_type_id' => '2'  				),  				(int) 1 => array(  					'id' => '8',  					'name' => 'Mother',  					'events_type_id' => '2'  				),  				(int) 2 => array(  					'id' => '7',  					'name' => 'Newborn',  					'events_type_id' => '2'  				)  			)  		),  		'Location' => array(  			'id' => '4',  			'name' => 'San Francisco',  			'parent_id' => '3',  			'longitude' => '-122.44',  			'latitude' => '37.7488',  			'zoom' => '11'  		),  		'Characters' => array(  			(int) 0 => array(  				'id' => '1',  				'role_id' => '7',  				'character_id' => '1',  				'description' => 'Love to live',  				'event_id' => '1',  				'Character' => array(  					'id' => '1',  					'name' => 'Phobos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			),  			(int) 1 => array(  				'id' => '2',  				'role_id' => '9',  				'character_id' => '26',  				'description' => 'Yo Dad!',  				'event_id' => '1',  				'Character' => array(  					'id' => '26',  					'name' => 'Alphonse Heisenberg'  				),  				'Role' => array(  					'id' => '9',  					'name' => 'Father'  				)  			),  			(int) 2 => array(  				'id' => '3',  				'role_id' => '8',  				'character_id' => '41',  				'description' => 'Hi Mom',  				'event_id' => '1',  				'Character' => array(  					'id' => '41',  					'name' => 'Roslin Bricker'  				),  				'Role' => array(  					'id' => '8',  					'name' => 'Mother'  				)  			),  			(int) 3 => array(  				'id' => '4',  				'role_id' => '7',  				'character_id' => '2',  				'description' => 'Hey Bro',  				'event_id' => '1',  				'Character' => array(  					'id' => '2',  					'name' => 'Deimos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			)  		)  	),  	(int) 3 => array(  		'Event' => array(  			'id' => '1',  			'event_type_id' => '2',  			'chronicle_id' => '1',  			'location_id' => '4',  			'start_date' => null,  			'end_date' => '735259',  			'description' => 'The birth of phobos was a great event..',  			'created' => '2013-01-25 22:13:32',  			'modified' => '2013-01-27 15:25:26'  		),  		'EventsType' => array(  			'id' => '2',  			'name' => 'Birth',  			'Role' => array(  				(int) 0 => array(  					'id' => '9',  					'name' => 'Father',  					'events_type_id' => '2'  				),  				(int) 1 => array(  					'id' => '8',  					'name' => 'Mother',  					'events_type_id' => '2'  				),  				(int) 2 => array(  					'id' => '7',  					'name' => 'Newborn',  					'events_type_id' => '2'  				)  			)  		),  		'Location' => array(  			'id' => '4',  			'name' => 'San Francisco',  			'parent_id' => '3',  			'longitude' => '-122.44',  			'latitude' => '37.7488',  			'zoom' => '11'  		),  		'Characters' => array(  			(int) 0 => array(  				'id' => '1',  				'role_id' => '7',  				'character_id' => '1',  				'description' => 'Love to live',  				'event_id' => '1',  				'Character' => array(  					'id' => '1',  					'name' => 'Phobos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			),  			(int) 1 => array(  				'id' => '2',  				'role_id' => '9',  				'character_id' => '26',  				'description' => 'Yo Dad!',  				'event_id' => '1',  				'Character' => array(  					'id' => '26',  					'name' => 'Alphonse Heisenberg'  				),  				'Role' => array(  					'id' => '9',  					'name' => 'Father'  				)  			),  			(int) 2 => array(  				'id' => '3',  				'role_id' => '8',  				'character_id' => '41',  				'description' => 'Hi Mom',  				'event_id' => '1',  				'Character' => array(  					'id' => '41',  					'name' => 'Roslin Bricker'  				),  				'Role' => array(  					'id' => '8',  					'name' => 'Mother'  				)  			),  			(int) 3 => array(  				'id' => '4',  				'role_id' => '7',  				'character_id' => '2',  				'description' => 'Hey Bro',  				'event_id' => '1',  				'Character' => array(  					'id' => '2',  					'name' => 'Deimos'  				),  				'Role' => array(  					'id' => '7',  					'name' => 'Newborn'  				)  			)  		)  	),  	(int) 4 => array(  		'Event' => array(  			'id' => '4',  			'event_type_id' => '9',  			'chronicle_id' => '1',  			'location_id' => '4',  			'start_date' => '680853',  			'end_date' => '691690',  			'description' => 'Moving to San Francisco',  			'created' => '2013-01-27 16:36:58',  			'modified' => '2013-01-27 16:40:54'  		),  		'EventsType' => array(  			'id' => '9',  			'name' => 'Relocate',  			'Role' => array(  				(int) 0 => array(  					'id' => '19',  					'name' => 'Traveller',  					'events_type_id' => '9'  				)  			)  		),  		'Location' => array(  			'id' => '4',  			'name' => 'San Francisco',  			'parent_id' => '3',  			'longitude' => '-122.44',  			'latitude' => '37.7488',  			'zoom' => '11'  		),  		'Characters' => array(  			(int) 0 => array(  				'id' => '16',  				'role_id' => '19',  				'character_id' => '22',  				'description' => 'This trip was much more enjoyable.',  				'event_id' => '4',  				'Character' => array(  					'id' => '22',  					'name' => 'Lucas Boont'  				),  				'Role' => array(  					'id' => '19',  					'name' => 'Traveller'  				)  			)  		)  	)  )

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments: