2011-02-07 5 views
0

하나 개 이상의 테이블에 쿼리를 실행 : 4 개 필드 3 개 필드 (이름, 그리드 및 사회 보장 카드) 내가 두 테이블에서 쿼리를 만들려고

  • INDIVIDUAL_AGGREGATE

    • SIMPLE_PERSON : 그리드 (PK), 유형 (D (드라이버) 또는 C (클라이언트)) 내가 어떤 사람을 등록 할 때, 코드, simple_person (simple_person의 외부 키))

    , 나는 SIMPLE_PERSON에 그들은을 저장하고 설정해야하는 (드라이버 또는 클라이언트) 집합의 유형. 그리고 두 개의 동일한 사회 보장 카드 번호를 가질 수 없습니다.

    AJAX에서는 SSC가 등록되었지만 SQL 쿼리가 작동하지 않으면 경고 상자를 반환하는 검사기가 발생합니다. 사회 보장 카드가 이미 등록되어있는 경우 나에게 돌아 오는 질문을해야합니다. 나는 EXISTS를 사용하려고 해요,하지만 난 많은 성공이 없었어요 :

    SELECT simple_person.name 
        FROM simple_person 
    WHERE SSC = 'SSC_NUMBER' 
        AND EXISTS (SELECT individual_aggregate.code FROM individual_aggregate 
           WHERE code = 'xx' 
            AND individual_aggregate.type = 'D'); 
    

    누군가가이 쿼리를 작동하게하는 데 도움이 수 있습니까?

  • +2

    인터넷의 신들에게 실제로 SSN을 데이터베이스에 저장하지 않기를기도합니다. –

    +0

    왜 쿼리의'EXISTS ... '부분이 필요한가요? SSC가 아직 등록되어 있지 않다는 것을 알고 싶다면'SELECT count (*) FROM simple_person WHERE SSC = 'SSC_NUMBER ''를 할 수 없습니까? –

    답변

    0

    당신이이 있는지 확인하고 싶어했다 사회 보장 번호를 등록한 사람?

    그렇다면 내가 수행 한 작업은 두 개의 테이블 사이의 조인이며 특정 사회 보장 번호와 동일한 행을 반환합니다.

    당신은 WHERE 문 (AND IA.code = 'XX'AND IA.Type = 'D')

    SELECT SP.Name 
    FROM simple_person AS SP 
    INNER JOIN individual_aggregate AS IA ON SP.grid = IA.grid 
    WHERE SP.SSC = {someNumber} 
    

    당신을 도움에 추가 할 수 있습니까?

    +0

    예, 감사합니다. guy = D –

    0

    EXISTS 절에있는 하위 쿼리는 실제로 테이블, 뷰 또는 기타와 충돌하지 않습니다.

    +0

    동의했다. 오타가 있는지 확인하기 위해 메모를 기록하려고했으나 –

    0

    하위 선택에 FROM 절이 없습니다.

    는 individual_aggregate로부터 individual_aggregate.code 을 선택 WHERE 코드 = 'XX' 및 individual_aggregate.type = 'D'

    감사 Sigersted

    관련 문제