首先,我为这个令人困惑的标题道歉,我不知道该怎么说。
我正在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
答案 0 :(得分: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;