8

多数の複数のレコードを含むテーブル (foo) があり、別のテーブル (foo2) のフィールド内のレコードの 1 つに似ているものだけを選択したい

内部結合で SELECT クエリを実行すると

SELECT pst_qty AS [QTY]
  ,[MFGPN]
  ,[mfg_name] AS [MANUFACTURER]
  ,description
  ,sup_id
  FROM [foo]
  INNER JOIN [foo2]
  ON [foo].[MFGPN] = [foo2].TestString

私の知る限り、foo.field1=foo2.field1 のレコードのみを取得します。ON foo.field1 LIKE foo2.field2 を使用して、foo2 のフィールドのようなレコードを選択できないようです。別のテーブルの列からレコードのようなレコードを選択するにはどうすればよいですか?

4

3 に答える 3

16

あなたは次のようなことを試しましたか

SELECT pst_qty AS [QTY] 
  ,[MFGPN] 
  ,[mfg_name] AS [MANUFACTURER] 
  ,description 
  ,sup_id 
  FROM [foo] 
  INNER JOIN [foo2] 
  ON [foo].[MFGPN] LIKE '%' + [foo2].TestString + '%'
于 2012-07-25T04:10:16.690 に答える
0
SELECT pst_qty AS [QTY]
.
.
.
  FROM [foo]
       where [foo].[MFGPN] LIKE '%123%'
             or [foo].[MFGPN] LIKE '%123%'
             or [foo].[MFGPN] LIKE '%123%'

動作しますが、その列のインデックスは無視されるため、完全なテーブル スキャンが必要になります。その代わりに、次のことを試すことができます。

SELECT pst_qty AS [QTY]
.
.
.
  FROM [foo]
  INNER JOIN [foo2]
        ON [foo].[MFGPN] LIKE '%' + [foo2].TestString + '%'
于 2012-07-25T06:39:42.133 に答える