首页 > 解决方案 > 在 SQL ACCESS 中使用 LEFT 或 INNER JOIN 和 WHERE 的问题

问题描述

苏?

我在 MS Access 中有这个查询:

SELECT 
    tbl_produtos.NomeProduto,
    tbl_produtos.PrecoVenda,
    tbl_precos_especiais.PrecoVenda
FROM
    tbl_produtos
        LEFT JOIN
    tbl_precos_especiais ON tbl_precos_especiais.ID_Produto = tbl_produtos.ID_Produto;

结果是这样的

结果是这样的

但是在 tbl_precos_especiais 上,我有一个名为 ID_CliFor 的字段,我想在 QUERY 上放置一个 WHERE 以过滤该字段上的结果:

SELECT 
    tbl_produtos.NomeProduto,
    tbl_produtos.PrecoVenda,
    tbl_precos_especiais.PrecoVenda
FROM
    tbl_produtos
        LEFT JOIN
    tbl_precos_especiais ON tbl_precos_especiais.ID_Produto = tbl_produtos.ID_Produto
WHERE
    tbl_precos_especiais.ID_CliFor = 268;

结果是这样的 结果是这样的

问题是无论如何我都想从 tbl_produtos 带来所有结果,那些在 tbl_precos_especiais 上为空的结果,所以我将有一个列表框,用户可以在其中更改和输入新值。但我不知道如何去做,我是一个初学者。

谢谢您的帮助

标签: mysqlsqlvbajoinwhere-clause

解决方案


移动条件on子句:

SELECT p.NomeProduto, p.PrecoVenda, pe.PrecoVenda
FROM tbl_produtos p LEFT JOIN
     tbl_precos_especiais pe
     ON pe.ID_Produto = p.ID_Produto AND pe.ID_CliFor = 268;

推荐阅读