Instrução SQL usando a cláusula Where com vários valores

Translate

Eu tenho uma tabela que possui várias linhas com os seguintes campos:

PersonName SongName Status

Quero usar nomes selecionados em uma caixa de listagem de seleção múltipla, onde posso recuperar os valores e, em seguida, fazer uma cláusula where para que mostre os nomes das músicas que todas as pessoas selecionadas podem tocar, portanto, o status está completo.

Por exemplo:

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

Se eu selecionar Holly e Ryan na caixa de lista e pressionar o botão, a consulta deve mostrar apenas Highland, pois é isso que os dois sabem.

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

Todas as respostas

Translate

Experimente isto:

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

O número na posse deve corresponder à quantidade de pessoas. Se você também precisa que o status sejaCompleteusa istowherecláusula em vez da anterior:

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

Se você estiver usando o procedimento armazenado parametrizado:

  1. Passe em string separada por vírgula
  2. Use a função especial para dividir a string separada por vírgulas na variável de valor da tabela
  3. UsarINNER JOIN ON t.PersonName = newTable.PersonNameusando uma variável de tabela que contém nomes passados
Fonte
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')
Fonte
Leave a Reply
You must be logged in to post a answer.
Sobre o autor