【问题标题】:left join table on string like '%table.name%'left join table on string like '%table.name%'
【发布时间】:2014-10-04 14:53:16
【问题描述】:

我正在尝试离开连接 products.table 和manufacturer.table 以将制造商实施到产品表中

唯一的问题是没有 id 链接表,所以我正在尝试这样的事情。

 SELECT [kArtikel]
  ,[cArtNr]
  ,a.[cName]
  ,a.[cBeschreibung]
  ,H.cName
  ,[cKurzBeschreibung]
  ,[cHersteller]
  ,[cHAN]
  FROM [db].[dbo].[tartikel] a
  left join [db].[dbo].[tHersteller] h on a.cName Like '%H.Cname%'
  where cHersteller is null 

但是通过这个查询,我只收到 H.cName = Null
2 分钟后执行相同数量的产品,cHersteller = Null

在搜索时,我只找到 join 位于带有 where 子句的某个 id 的示例。但这在这里是不可能的。

【问题讨论】:

  • 你用的是什么关系型数据库?
  • MS SQL SERVER 2014 Express
  • 你为什么只麻烦将ah 别名应用于某些列?难道是猜谜游戏,其他列是从哪里来的?
  • 因为 cName 和 cBeschreibung 存在于表 H 中,其他的没有,所以没有必要

标签: sql sql-server string left-join sql-like


【解决方案1】:

您正在查询a.cName 是否包含文字 H.Cname,这可能不是您想要的。如果您想在H.Cname 周围使用通配符,可以使用+ 运算符:

SELECT [kArtikel]
  ,[cArtNr]
  ,a.[cName]
  ,a.[cBeschreibung]
  ,H.cName
  ,[cKurzBeschreibung]
  ,[cHersteller]
  ,[cHAN]
FROM [db].[dbo].[tartikel] a
LEFT JOIN [db].[dbo].[tHersteller] h ON a.cName LIKE '%' + H.Cname + '%'
WHERE cHersteller IS NULL

【讨论】:

  • 哦,当然。答案显然很尴尬。它的工作,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 2016-11-29
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 2011-06-26
  • 2012-02-04
相关资源
最近更新 更多