[support] DBTNG query with JOIN and IN

John Baldwin johnbaldwindrupal at gmail.com
Tue Dec 20 07:43:06 UTC 2011


Perhaps it's a paste-o, but the conditions are different between these two queries. ngeutg.usergroup_id vs. ngeutg.user_id:

> where ngeutg.usergroup_id IN (16, 5608, 48, 34, 22, 26, 24, 18, 28, 20, 14, 12, 6879, 36);

> $query->condition('ngeutg.user_id', array(16, 5608, 48, 34, 22, 26, 24, 18, 28, 20, 14, 12, 6879, 36), 'IN');

John

On Monday Dec 19  7:39 PM, at 7:39 PM, Steve Edwards wrote:

> I'm attempting to write DBTNG query for a Migrate v2 class (D6), and I can't quote get a WHERE clause using IN to work.  Here's the query I need:
> 
> select ngeuu.user_name, ngeu.email_address1
> from nge_users ngeu inner join nge_user_to_group_tbl ngeutg
> on ngeu.user_id = ngeutg.user_id
> where ngeutg.usergroup_id IN (16, 5608, 48, 34, 22, 26, 24, 18, 28, 20, 14, 12, 6879, 36);
> 
> This query returns the appropriate amount of rows.  The way I have the query written in my Migrate class is:
> 
> $query = db_select('nge_users', 'ngeu');
> $query->innerJoin('nge_user_to_group_tbl', 'ngeutg', 'ngeu.user_id=ngeutg.user_id');
> $query->fields('ngeu', array('user_name', 'email_address1'))
> $query->condition('ngeutg.user_id', array(16, 5608, 48, 34, 22, 26, 24, 18, 28, 20, 14, 12, 6879, 36), 'IN');
> $query->duplicate();
> 
> but I start getting duplicate rows after 4 records, even though the query by itself doesn't return any.  How do I need to change this to make it correct?
> 
> Thanks.
> 
> Steve
> -- 
> [ Drupal support list | http://lists.drupal.org/ ]



More information about the support mailing list