When using subquery with an alias in the table name, for example:
DB.Table("(SELECT * FROM \"users\") temp").Where("\"name\" = ?", "beforequery_user3").Find(&fetched3).Error
The generated SQL query has incorrect alias for the subquery table. This is the generated sql:
SELECT * FROM (SELECT * FROM "users") temp WHERE "name" = 'beforequery_user3' AND "users"."deleted_at" IS NULL
It should be:
SELECT * FROM (SELECT * FROM "users") temp WHERE "name" = 'beforequery_user3' AND temp."deleted_at" IS NULL