You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access 2010查询需求:根据cont表ID_cont关联对应表返回nome和cognome

Access 2010查询需求:根据cont表ID_cont关联对应表返回nome和cognome

嗨,我来帮你搞定这个Access查询的需求!

你的场景逻辑很明确:cont表每条记录里,prop_ID和cond_ID总有一个是有效ID(非-1),另一个固定为-1,现在要根据选中的ID_cont,自动从对应的cond或prop表里取出nome和cognome字段。

我给你准备了两种直接可用的SQL查询方案,适配不同使用场景:

方式1:支持手动输入ID的参数查询

这个版本运行时会弹出输入框,让你填写要查询的ID_cont值,灵活性拉满:

SELECT 
    IIF(cont.cond_ID <> -1, cond.nome, prop.nome) AS nome,
    IIF(cont.cond_ID <> -1, cond.cognome, prop.cognome) AS cognome
FROM 
    (cont 
    LEFT JOIN cond ON cont.cond_ID = cond.ID_cond)
    LEFT JOIN prop ON cont.prop_ID = prop.ID_prop
WHERE 
    cont.ID_cont = [请输入ID_cont];

方式2:固定ID的定向查询

如果你已经明确要查某个特定的ID_cont(比如你例子里的37),直接修改WHERE子句即可:

SELECT 
    IIF(cont.cond_ID <> -1, cond.nome, prop.nome) AS nome,
    IIF(cont.cond_ID <> -1, cond.cognome, prop.cognome) AS cognome
FROM 
    (cont 
    LEFT JOIN cond ON cont.cond_ID = cond.ID_cond)
    LEFT JOIN prop ON cont.prop_ID = prop.ID_prop
WHERE 
    cont.ID_cont = 37;

简单说下逻辑

  1. 先把cont表分别和cond、prop表做左连接,这样不管是cond_ID还是prop_ID有效,对应的关联表字段都能被正常访问到
  2. 用Access自带的IIF函数做判断:如果cond_ID不等于-1,就从cond表取姓名;否则就从prop表取
  3. 最后通过WHERE子句精准筛选你要的ID_cont

拿你给的例子测试:输入ID_cont=37时,cont表的cond_ID=1(非-1),所以会自动匹配cond表中ID_cond=1的Giulio Rossi,完全符合你的预期。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:49:31