2013-08-28 7 views
0

이 쿼리를 작성하는 것이 쉽지만 정확한 쿼리를 프레임 할 수 없다는 것을 알고 있습니다. 지금까지 읽은 내용을 토대로 솔루션에는 두 개의 테이블을 결합하는 것이 포함될 수 있습니다.다른 테이블의 열 값을 기반으로 테이블에서 레코드를 선택

TABLE_ONE {S_NO, DK_NO, FRM , DATE} 

TABLE_TWO {S_NO, DK_NO , TO} 

내가 TABLE_TWO의 필드 또는 지금까지 TABLE_ONE

실패 시험 FRM 필드를 검사 DK_NO과 가치의 입력 값을 기준으로 TABLE_ONE에서 레코드를 선택합니다 : 여기에 문제는

)

1)

$sql = "select * from TABLE_ONE where DK_NO like '%".$dkno."%' and (FRM='".$department."' or (TABLE_TWO.DK_NO like '%".$dakno."%' and TABLE_TWO.TO='".$department."'))"; 

$sql = "select * from TABLE_ONE where DK_NO like '%".$dkno."%' and (FRM='".$department."' or TABLE_TWO.TO='".$department."')"; 
+2

검색 항목 및 내용 – Mihai

+0

2 테이블 간의 관계는 무엇입니까? 'S_NO'는 둘 다 같은 값입니까? – Sean

+0

아니요 TABLE_TWO의 DK_NO는 외래 키입니다 –

답변

1

추천 도서 : JOIN. 내부 사용

가입 :

"select t1.* 
from table_one t1 inner join table_two t2 on t1.dk_no = t2.dk_no 
where (t1.frm = '". $department. "' or t2.to = '".$department. "') 
    and t1.dk_no like '%" . $dkno . "%'"; 
+0

@AkashGupta, 아무튼. 질문에 대한 귀하의 의견에 따라 적절한 조인 항목을 반영하도록 답변을 업데이트했습니다. – vee

1

당신은 당신의 테이블을 조인 할 필요가있다. 다음과 같이 시도하십시오 :

SELECT 
    T1.* 
FROM 
    TABLE_ONE T1 
JOIN 
    TABLE_TWO T2 
ON 
    T1.DK_NO = T2.DK_NO 
WHERE 
    T1.DK_NO like '%".$dkno."%' 
AND 
    (T1.FRM='".$department."' OR TABLE_TWO.TO='".$department."') 
관련 문제