MySQL如何关联另一张表的多个ID查询对应名称
解决方案
因为需要把表2中3个不同的ID字段分别关联到表1获取对应名称,所以需要给表1设置不同的别名,多次关联表2即可实现。
假设你表1的名称为type_mapping,表2的名称为business_records,可以按照如下语句编写,注意替换成你实际的表名:
SELECT t2.ID, t1_1.Name AS Field1ID, t2.Field1Data, t1_2.Name AS Field2ID, t2.Field2Data, t1_3.Name AS Field3ID, t2.Field3Data FROM business_records t2 LEFT JOIN type_mapping t1_1 ON t2.Field1ID = t1_1.ID LEFT JOIN type_mapping t1_2 ON t2.Field2ID = t1_2.ID LEFT JOIN type_mapping t1_3 ON t2.Field3ID = t1_3.ID;
说明
- 这里使用
LEFT JOIN是为了兼容表2中某ID字段为空、或者在表1无对应匹配的场景,避免整条数据丢失,如果你确认所有ID都有对应值,也可以换成INNER JOIN。 - 语句中通过
AS指定别名,保证输出的字段名和你要求的结果完全一致。
内容的提问来源于stack exchange,提问作者Layer 8
相关产品推荐
相关产品推荐

