我有一个表,它有一个 Name 列以及 3 个标识符,这些标识符引用同一个表中的其他条目。我的查询将这 3 个标识符解析为它们所引用的记录的实际名称。到目前为止,我只管理了以下...
SELECT mt.Name, mt2.Name, mt3.Name, mt4.Name
FROM MyTable AS mt1
LEFT OUTER JOIN MyTable AS mt2 ON mt2.Id = mt1.RefId1
LEFT OUTER JOIN MyTable AS mt3 ON mt3.Id = mt1.RefId2
LEFT OUTER JOIN MyTable AS mt4 ON mt4.Id = mt1.RefId3
...这有效并且确实返回了三个参考记录的名称。请注意,在某些情况下,RefId1/2/3 值可能为空,因此并非始终使用所有 RefId 字段。它可以工作,但不是很快,我相信真正了解 SQL 的人可以显着改善这一点。有任何想法吗?