Access SQL下拉列查询:如何用关联表名称替代ID显示
合同下拉框ID转关联公司名称且保留所有条目解决方案
- 问题根源:
INNER JOIN仅保留关联表中有匹配记录的合同,导致部分条目丢失。改用LEFT JOIN可保留所有合同数据,同时匹配对应的公司名称。 - 优化后的SQL语句:
SELECT tbl_contracts.ID, tbl_contracts.contract_name, COALESCE(firm.company_name, '无关联厂商') AS firm_name, COALESCE(agency.company_name, '无关联代理') AS agency_name FROM tbl_contracts LEFT JOIN tbl_firm_agencies firm ON tbl_contracts.firm_id = firm.ID LEFT JOIN tbl_firm_agencies agency ON tbl_contracts.agency_id = agency.ID;
- 关键说明:
- 两次
LEFT JOIN分别关联厂商和代理的公司数据,用别名firm和agency区分关联关系 COALESCE()函数用于将无匹配时的NULL值替换为友好提示文本,可根据需求调整内容- 后续将下拉框的绑定字段替换为
firm_name和agency_name,即可显示公司名称而非ID
- 两次
内容的提问来源于stack exchange,提问作者user7274456
相关产品推荐
相关产品推荐

