【发布时间】:2014-02-10 23:39:32
【问题描述】:
我有带有标签的表格。它有列 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 ...
我怎样才能更好地实现它,一次加入?
【问题讨论】:
-
“选择第一个标签”是什么意思?按什么排序?
标签: mysql sql select join group-by