Istruzione SQL che utilizza la clausola Where con più valori

Translate

Ho una tabella che ha più righe con i seguenti campi:

PersonName SongName Status

Voglio usare i nomi selezionati da una casella di riepilogo a selezione multipla, di cui posso recuperare i valori, quindi fare una clausola where in modo che mostri i nomi dei brani che le persone selezionate possono riprodurre, quindi lo stato è completo.

Per esempio:

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

Se seleziono Holly e Ryan dalla casella di riepilogo e premo il pulsante, la query dovrebbe mostrare solo Highland poiché è ciò che entrambi sanno.

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

Tutte le risposte

Translate

Prova questo:

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

Il numero nell'avere dovrebbe corrispondere alla quantità di persone. Se è necessario che anche lo stato siaCompleteUsa questowhereclausola invece della precedente:

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

Se si utilizza la stored procedure parametrizzata:

  1. Passa una stringa separata da virgole
  2. Utilizzare la funzione speciale per dividere la stringa separata da virgole in una variabile di valore di tabella
  3. UsoINNER JOIN ON t.PersonName = newTable.PersonNameutilizzando una variabile di tabella che contiene i nomi passati
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.
Circa l'autore