SQL语句使用带有多个值的Where子句

Translate

我有一个表,其中包含具有以下字段的多行:

PersonName SongName Status

我想使用从多个选择列表框中选择的名称,我可以检索这些值,然后执行where子句,以便它显示所选人员都可以播放的歌曲名称,因此状态是完整的。

例如:

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

如果我从列表框中选择Holly和Ryan并按下按钮,则查询应该只显示Highland,因为这是他们俩都知道的。

This question and all comments follow the "Attribution Required."

所有的回答

Translate

尝试这个:

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

有的人数应与人数相符。如果您还需要状态Complete用这个where子句,而不是前一个子句:

where personName in ('Ryan', 'Holly') and status = 'Complete'
来源
sll
Translate
SELECT PersonName, songName, status
FROM table
WHERE name IN ('Holly', 'Ryan')

如果使用参数化存储过程:

  1. 传递逗号分隔的字符串
  2. 使用特殊功能将逗号分隔的字符串拆分为表值变量
  3. 利用INNER JOIN ON t.PersonName = newTable.PersonName使用包含传入名称的表变量
来源
Translate
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')
来源
Leave a Reply
You must be logged in to post a answer.
关于作者