在 Gorm 查询中别名主表的名称



我有一个类似的Gorm查询:

db.
Table(fmt.Sprintf("%s t", model.BlogTag{}.TableName())).
Select(`
t.id,
t.path,
t.title,
t.hits,
COUNT(DISTINCT b.id) AS used_times
`).
Joins("LEFT JOIN contentitem_tag_map bt ON bt.tag_id = t.id").
Joins("LEFT JOIN content b ON b.id = bt.content_item_id AND b.state = 1").
Where("t.published = 1").
Group("t.id").
Order("used_times DESC").
Find(&tags).Error
结果查询如下:
SELECT t.id, t.path, t.title, t.hits, COUNT(DISTINCT b.id) AS used_times
FROM `myschema`.`vk9wz_tags` 
LEFT JOIN myschema.vk9wz_contentitem_tag_map bt ON bt.tag_id = t.id 
LEFT JOIN myschema.vk9wz_content b ON b.id = bt.content_item_id AND b.state = 1 
WHERE t.published = 1 
GROUP BY `t`.`id` 
ORDER BY used_times DESC

我试图指定的别名t没有被Gorm拾取!因此MySQL无法理解t在首位是什么。

据我所知,文档没有包括如何指定表别名。

有什么方法可以避免在查询中使用全名吗?

尝试使用:

db.Table(model.BlogTag{}.TableName() + " AS t")

相关内容

  • 没有找到相关文章

最新更新