2017-05-22 12 views
0

私は2つのテーブル、tblMasterとソフトウェアを持っています。ワイルドカードでMS Accessに参加

これらのテーブルをワイルドカード結合で結合したいと考えています。私のテーブルはそういう形になっています。ここで

|SWID|Software Title |location| 
---------------------------------- 
|1 |Adobe Reader  |1| 
|2 |Apache   |1| 
|3 |Mozilla   |1| 
|4 |Microsoft Windows |2| 
|5 |HP    |3| 

tblMaster

|ID|Title       |type|state| 
------------------------------------------------ 
|1 |Adobe Reader     |A |Close| 
|2 |Apache HTTP Server    |A |Close| 
|3 |Multiple Mozilla Products  |A |Open | 
|4 |Microsoft Windows File Handling |A |Open | 
|5 |Microsoft Windows Client Server |A |Open | 
|6 |HP Printer      |A |Open | 
|7 |Adobe Acrobat     |A |Close| 

ソフトウェアは、私の試みです:

SELECT * FROM Software 
left Join tblMaster on Software.[Software Title] like "*" & tblMaster.Title & "*"; 

しかし、私はこれを行うとき、私はこのエラーを取得:

メモ、OLE、またはハイパーリンクオブジェクト(ソフトウェア[Software Title]のように "" &のtblMaster.Title & "")に参加できません。

答えて

1

あなたはワイルドカードに参加できませんので、これは創造性のビットが必要です。実際には、その後

SELECT * 
FROM Software 
Left Join (SELECT tblMaster.*, Software.[SWID] 
FROM tblMaster, Software 
WHERE [Software Title] LIKE "*" & tblMaster.Title & "*") 
AS A 
ON A.[SWID] = Software.[SWID] 

この最初のリンク可能なすべての結合をし、フィールドに参加します。 [Software Title]が2回報告され、問題がある場合は調整してください。

内部結合で問題ない場合は、サブクエリを使用するだけで済みます。

+0

申し訳ありませんが、戻ってくるのにとても時間がかかりました。私はあなたの解決策が好きですが、私はまだ 'メモ、OLE、またはハイパーリンクに参加できません(ソフトウェア。[ソフトウェアタイトル] = A。[ソフトウェアタイトル])'エラー – 1122335

+0

編集済みの回答を今すぐお試しください。これは別のフィールドで結合しますが、実際には内側のクエリ(括弧の間)のソフトウェアタイトルを比較します。これがうまくいかない場合は、テーブル構造(各列のタイプ、スクリーンショットまたは書面)を投稿してください。 –

1

あなたはこれを試すことができます。

SELECT 
    Software.* 
FROM 
    Software, 
    tblMaster 
WHERE 
    Software.[Software Title] Like "*" & tblMaster.Title & "*"; 
+0

これは内部結合であり、左結合ではありません。 –

+0

Trueですが、tblMasterのフィールドは要求されません。 – Gustav

+0

質問では、選択された列は 'Software。*、tblMaster。*'に等しい一般的なワイルドカードであり、tblMasterからのフィールドが要求されていないにもかかわらず、結合されていないSoftwareからのフィールドはwhereの基準。 –

関連する問題