Nat*_*han 12 t-sql sql-server inner-join
我有以下加入
INNER JOIN @SynonymTable AS A ON ([Products].[Title] LIKE A.[Synonym])
Run Code Online (Sandbox Code Playgroud)
@SynonymTable表变量包含(如果需要)项列表,例如:
%shirt%
%blouse%
%petticoat%
Run Code Online (Sandbox Code Playgroud)
这些都基于特定关键字搜索的同义词列表,例如术语"衬衫" - 然后我可以找到所有可能相关的项目等.问题是如果没有提供关键字查询显然没有加入任何东西.
如果同义词表中没有项目,有没有消除连接或返回所有项目?
我在查询中找到了绕过最后INNER JOIN的帖子,但我无法让它适用于我的场景?
任何帮助或建议都会很棒.
你可以使用这样一个选择:
SELECT * FROM Products
LEFT JOIN @SynonymTable AS A ON ([Products].[Title] LIKE A.[Synonym])
WHERE A.[Synonym] IS NOT NULL
OR NOT EXISTS (SELECT B.[Synonym] FROM @SynonymTable B)
Run Code Online (Sandbox Code Playgroud)