Sql 如何为两个联接表应用Containstable?
产品表Sql 如何为两个联接表应用Containstable?,sql,sql-server-2008,Sql,Sql Server 2008,产品表 pid modelnumber 1 a 2 b 3 c 生产交易 pid name description... 1 ball ball 2 bat cricket bat 我在product表中为Modelnumber创建全文 productTransaction表中的名称和说明相同 现在,如果我搜索modelnumber或name,我想加入这个表 结果应该是 pid name modelnumber 1 ball
pid modelnumber
1 a
2 b
3 c
生产交易
pid name description...
1 ball ball
2 bat cricket bat
我在product表中为Modelnumber创建全文
productTransaction表中的名称和说明相同
现在,如果我搜索modelnumber或name,我想加入这个表
结果应该是
pid name modelnumber
1 ball a
我目前正在做与以下类似的事情:
SELECT
PD.pid,
PD.name,
PD.modelnumber
FROM (
SELECT
(
COALESCE(ctP.[RANK], -1)
+
COALESCE(ctPT.[RANK], -1)
) AS [RANK],
P.pid,
PT.name,
P.modelnumber
FROM Product AS P
INNER JOIN ProductTranslation AS PT
ON PT.pid = P.pid
OUTER APPLY (
SELECT TOP 1
ctP.[KEY],
ctP.[RANK]
FROM CONTAINSTABLE(
Product,
*,
@Query
) AS ctP
WHERE ctP.[KEY] = P.pid
)
OUTER APPLY (
SELECT TOP 1
ctPT.[KEY],
ctPT.[RANK]
FROM CONTAINSTABLE(
ProductTranslation,
*,
@Query
) AS ctPT
WHERE ctPT.[KEY] = P.pid
)
WHERE
(
ctP.[KEY] IS NOT NULL
OR
ctPT.[KEY] IS NOT NULL
)
) AS PD
ORDER BY PD.[RANK] DESC