복붙노트

[SQL] 여러 값에 Where 절을 사용하여 SQL 문

SQL

여러 값에 Where 절을 사용하여 SQL 문

나는 다음과 같은 필드가 여러 행이있는 테이블이 있습니다

PersonName SongName Status

내가 값을 검색 할 수있는 다중 선택 목록 상자에서 선택한 이름을 사용하려면, 다음이 선택한 사람들이 따라서 상태가 완료 모든 놀이입니다 수있는 노래 이름을 표시하도록 where 절을한다.

예를 들면 :

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

나는 목록 상자에서 홀리와 라이언을 선택하고 버튼을 누르면 그 그들이 모두 알고 그대로 쿼리는 고지를 표시해야합니다.

해결법

  1. ==============================

    1.이 시도:

    이 시도:

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

    가진 숫자는 사람의 양을 일치해야합니다. 당신은 또한 전체 사용으로 상태가 필요하면이 곳 대신 이전의 절 :

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

    2.

    SELECT PersonName, songName, status
    FROM table
    WHERE name IN ('Holly', 'Ryan')
    

    당신은 저장 프로 시저를 매개 변수화 사용하는 경우

  3. ==============================

    3.

    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')
    
  4. from https://stackoverflow.com/questions/10012695/sql-statement-using-where-clause-with-multiple-values by cc-by-sa and MIT license