Sophie Sophie - 11 months ago 51
SQL Question

SQL Statement using Where clause with multiple values

I have a table that has multiple rows with the following fields:

PersonName SongName Status

I want to use names selected from a multiple selection listbox, which I can retrieve the values, and then do a where clause so it shows the song names that the selected people can all play, therefore status is complete.

For example:

PersonName SongName Status
Holly Highland Complete
Holly Mech Complete
Ryan Highland Complete

If I select Holly and Ryan from the list box and press the button the query should just show Highland as that is what they both know.

Answer Source

Try this:

select songName from t
where personName in ('Ryan', 'Holly')
group by songName
having count(distinct personName) = 2

The number in the having should match the amount of people. If you also need the Status to be Complete use this where clause instead of the previous one:

where personName in ('Ryan', 'Holly') and status = 'Complete'