[support] DBTNG query with JOIN and IN

Steve Edwards killshot91 at gmail.com
Tue Dec 20 03:39:57 UTC 2011


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


More information about the support mailing list