Hi-
The InfoPath out-of-the-box data connections don't filter so I think you already have what you need.
The data connection lists all the IDs in and populates a dropdown.
The user selects an option from the dropdown.
Using that ID, you can filter. Create a rule on the dropdown and set the condition to "when the dropdown is not blank".
Then have actions that set a field's value, such as name (from the main data source) = name (from the secondary data source) [ID=ID]
The stuff in brackets is the filtering. You might need to play around with the filtering to make sure you understand it and set it correctly.
I'm attaching a screenshot of an example.
Hope this helps.