2012-11-26 25 views
0

我在嘗試運行全文搜索查詢時遇到問題。我需要在兩張桌子上進行全文搜索。如果任何一個條款在任何一個表中,我需要從第一個表中返回記錄。全文搜索查詢時遇到問題

select R.* from Request R 
    inner join Patients P on R.PatientID = P.PatientID 
    inner join containstable(Request,(*),@keywords)AS KEY_TBL 
    ON R.RequestID = KEY_TBL.[Key] 
    full outer join 
    (select R.* from Request R 
    inner join Patients P on R.PatientID = P.PatientID 
    inner join containstable(Patients,(*),@keywords) AS KEY_TBL2 
    ON P.PatientID = KEY_TBL2.[Key]) as b on R.RequestID = b.RequestID 

回答

1

所有我需要的是一個聯盟,而不是一個完整的外部聯接。

select R.* from Request R 
    inner join Patients P on R.PatientID = P.PatientID 
    inner join containstable(Request,(*),@keywords)AS KEY_TBL 
    ON R.RequestID = KEY_TBL.[Key] 
    UNION 
    select R.* from Request R 
    inner join Patients P on R.PatientID = P.PatientID 
    inner join containstable(Patients,(*),@keywords) AS KEY_TBL2 
    ON P.PatientID = KEY_TBL2.[Key]