Есть ли способ использовать функцию SubQuery в Select ?? Я видел это как часть предложения Where, но мне нужно выбрать.
Я решаю это временно, делая это:
func GetUserProviders(userID int) ([]userprovider, error) {
providers := []userprovider{}
query := `SELECT (count(users_providers.user_id) > 0)
FROM users_providers
WHERE users_providers.user_id = '` + strconv.Itoa(userID) + `' AND users_providers.provider_id=providers.id`
rows, err := db.DB.Table("providers").
Select("providers.id, providers.name, (" + query + ") as checked").Rows()
if err == nil {
for rows.Next() {
var provider = userprovider{}
db.DB.ScanRows(rows, &provider)
providers = append(providers, provider)
}
}
return providers, err
}
Но я бы предпочел, если возможно, использовать функцию ORM вместо конкатенации строк.
В этом случае опасности нет, но для других случаев было бы здорово, если бы была какая-либо функция для преобразования
// SQL expression
type expr struct {
expr string
args []interface{}
}
в продезинфицированную строку.
Заранее спасибо.