0

首先我为这个令人困惑的标题道歉,我不知道如何准确地说出来。

我在 Access 2010 上进行查询,以从 2 个表中获取数据,一个带有设备的正常数据,另一个带有图像(OLE 对象)。Marca_(品牌)和 Modelo(型号)是我用来将设备与相应图像相关联的字段。

恢复的表是这样的:

设备一:

ID   Name      Marca_   Modelo  

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

图一:

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

使用 aLEFT 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 回答