我有以下加入
INNER JOIN @SynonymTable AS A ON ([Products].[Title] LIKE A.[Synonym])
@SynonymTable 表变量包含(如果需要)项目术语列表,例如:
%shirt%
%blouse%
%petticoat%
这些都是基于特定关键字搜索的同义词列表,例如术语“衬衫” - 然后我可以从中找到可能相关的所有项目等。问题是,如果有没有提供关键字,查询显然不会连接任何内容。
如果同义词表中没有项目,是否有办法消除连接或返回所有项目?
我发现了类似 Bypass last INNER JOIN in query 的帖子但我无法让它适用于我的场景?
任何帮助或建议都会很棒。
最佳答案
您可以像这样使用一个选择:
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)
关于sql-server - 如果没有记录要连接,则忽略 SQL INNER JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140619/