Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何为两个联接表应用Containstable?_Sql_Sql Server 2008 - Fatal编程技术网

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