SQL Statement using Where clause with multiple values

前端 未结 3 717
盖世英雄少女心
盖世英雄少女心 2020-12-07 17:39

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

PersonName SongName Status

I want to use names selected from a multiple s

相关标签:
3条回答
  • 2020-12-07 18:10
    SELECT PersonName, songName, status
    FROM table
    WHERE name IN ('Holly', 'Ryan')
    

    If you are using parametrized Stored procedure:

    1. Pass in comma separated string
    2. Use special function to split comma separated string into table value variable
    3. Use INNER JOIN ON t.PersonName = newTable.PersonName using a table variable which contains passed in names
    0 讨论(0)
  • 2020-12-07 18:18
    Select t1.SongName
    From tablename t1
    left join tablename t2
     on t1.SongName = t2.SongName
        and t1.PersonName <> t2.PersonName
        and t1.Status = 'Complete' -- my assumption that this is necessary
        and t2.Status = 'Complete' -- my assumption that this is necessary
        and t1.PersonName IN ('Holly', 'Ryan')
        and t2.PersonName IN ('Holly', 'Ryan')
    
    0 讨论(0)
  • 2020-12-07 18:28

    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'
    
    0 讨论(0)
提交回复
热议问题