在 SQL ACCESS 中使用 LEFT 或 INNER JOIN 和 WHERE 的问题
Posted
技术标签:
【中文标题】在 SQL ACCESS 中使用 LEFT 或 INNER JOIN 和 WHERE 的问题【英文标题】:Question using LEFT or INNER JOIN and WHERE in SQL ACCESS 【发布时间】:2020-12-03 21:25:21 【问题描述】:喂?
我在 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 上为空的结果,所以我将有一个列表框,用户可以在其中更改和输入新值。但我不知道该怎么做,我是一个初学者。
感谢您的帮助
【问题讨论】:
【参考方案1】:将条件移至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;
【讨论】:
您好,感谢您的回答。我收到“不支持连接表达式”错误,它突出显示了这部分:“pe.ID_CliFor = 268” @FabioGomes 。 . .这个结构是标准的 SQL,当然也得到 mysql 的支持。您是否错误地回答了问题,并且您真的使用了一些迟钝的数据库?以上是关于在 SQL ACCESS 中使用 LEFT 或 INNER JOIN 和 WHERE 的问题的主要内容,如果未能解决你的问题,请参考以下文章
access中left join和limit联合分页查询怎么写sql语句?
MS Access - SQL LEFT JOIN 多个条件