将联接表保留在字符串上,例如'%table.name%'

时间:2014-10-04 14:53:16

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

我正试图将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上。但这不是可能的。

1 个答案:

答案 0 :(得分:2)

您正在查询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