0

最初に、タイトルがわかりにくくて申し訳ありません。正確な言い方はわかりません。

Access 2010 でクエリを作成して、2 つのテーブルからデータを取得しています。1 つは機器の通常のデータ、もう 1 つは画像 (OLE オブジェクト) です。Marca_ (ブランド) と Modelo (モデル) は、機器をそれぞれの画像に関連付けるために使用しているフィールドです。

テーブルを再開すると、次のようになります。

機器 1:

ID   Name      Marca_   Modelo  

1        Equip1   Brand1    Model1
2        Equip2   Brand2    Model2
3        Equip1   Brand3    Model3
4        Equip2   Brand4    Model4

画像 1:

Image    Marca_   Modelo  

Image1   Brand1    Model1
Image2   Brand3    Model3

SELECT  [Tabela Equipamentos ULSM Geral].*, 
        [Fotografias e Manuais de Equipamentos2].FOTO
FROM [Tabela Equipamentos ULSM Geral] 
INNER JOIN [Fotografias e Manuais de Equipamentos2] 
    ON ([Tabela Equipamentos ULSM Geral].MODELO = [Fotografias e Manuais de Equipamentos2].MODELO) 
    AND ([Tabela Equipamentos ULSM Geral].Marca_ = [Fotografias e Manuais de Equipamentos2].MARCA);

私が得るものは次のようなものです:

ID   Name      Marca_   Modelo  Image

1        Equip1   Brand1    Model1  Image1
2        Equip3   Brand3    Model3  Image3

問題は、一部の機器の写真がないことです。そのクエリでは、機器に関連付けられた画像のみが表示されます。

私の質問は、画像テーブルに接続するものがない機器の行を取得するにはどうすればよいですか? これは私が欲しいものです:

ID   Name      Marca_   Modelo   Image

1        Equip1   Brand1    Model1   Image1
2        Equip2   Brand2    Model2
3        Equip1   Brand3    Model3   Image3
4        Equip2   Brand4    Model4
4

1 に答える 1

3

LEFT JOINの代わりに を使用しINNER JOINます。別の注意として、常にテーブルのスキーマを追加する必要があります。また、クエリでテーブル エイリアスを使用することをお勧めします。ああ、最後に、SELECTを使用する代わりに に列を明示的に追加してみてください*

SELECT  T.ID, 
        T.Name,
        T.[Marca_],
        T.Modelo,
        F.[Image]
FROM dbo.[Tabela Equipamentos ULSM Geral] T -- use the right schema
LEFT JOIN dbo.[Fotografias e Manuais de Equipamentos2] F
    ON T.MODELO = F.MODELO
    AND T.Marca_ = F.MARCA;
于 2013-11-11T16:20:13.547 に答える