sql-server - 如果没有记录要连接,则忽略 SQL INNER JOIN?

标签 sql-server tsql inner-join

我有以下加入

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/

相关文章:

php - Ajax 调用后刷新页面/结果

SQL 连接 : Select status of reviews submitted by employees and also the list of employees who have not submitted the review for each year

tsql - 从 SQL Server SEQUENCE 获取当前值

mysql - 连接多个 WordPress MySQL 表

mysql - 我如何连接这两个连接查询?

sql-server - 在 SQL XDL 文件中,如何读取死锁的进程节点上的 waitresource 属性?

sql-server - SQL Server 是否支持哈希索引?

MYSQL:在另一个字段中选择具有最大整数值的 id

java - 此驱动程序未配置集成身份验证

sql - 根据 ID 连接值