我是一名有用的助手,可以为您翻译文本。以下是您需要翻译的内容:
如何在一个连接中更好地实现它?
我有一个带标签的表格。它有id、tagTypeId和tagName三列。每个项目都可以有多个标签。 对于每个项目,我想选择具有tagTypeId 1、2和3的第一个标签。我尝试在我的查询中添加了3个几乎相同的左连接,这个方法效果很好,但速度非常慢(在表中数据量不小的情况下,大约需要5秒钟)。
大致如下:
select i.*, tag1.name, tag2.name, tag3.name from items i
left join (select t.id, t.tagName as name from tags t where t.tagTypeId=1) tag1 on ...
left join (select t.id, t.tagName as name from tags t where t.tagTypeId=2) tag2 on ...
left join (select t.id, t.tagName as name from tags t where t.tagTypeId=3) tag3 on ...
如何在一个连接中更好地实现它?