我有一个像这样的查询
myQuery := "SELECT DISTINCT table1.id, table1.active, table2.active FROM table1 INNER JOIN table 2 ON table1.id = table2.foreign_id AND table2.active = true
我正在使用MySQL。
我必须选择以避免错误。table2.active
SELECT list; this is incompatible with DISTINCT in my sql
我正在使用,但我认为问题更深。我无法将结果扫描到目标对象中,类型为指向接口切片的指针,因为有两个方面:sqlx
err := conn.Unsafe().Select(dest, myQuery)
dest
interface{}
据我所知,不要在他们的名字中保留限定词,所以我基本上得到了两个名字只是,没有或。这意味着,在扫描到目标结构中时会覆盖。Columns
sql.Rows
Columns
active
table1
table2
table2.active
table1.active
让我们也假设它有另一种类型比(在这个简单的例子中没有多大意义,但在我的真实场景中确实如此)。我会收到一个错误,因为该值将具有错误的类型,要扫描到我的目标对象中。table1.active
table2.active
table2.active
由于我不知道 中结构的性质,直接检查没有多大帮助,因为手动将这些值写入结构中感觉是不可能的。我可以获取带有一些反射的目标结构的所有字段名称,并将它们放入查询的部分(这就是我实际正在做的),但实际上并非如此。dest
Rows
dest
SELECT
我还想知道我是否可以将上面的查询作为子查询,将其包装到外部查询中,而不会产生所有误导性列。但是,像这样的查询也无法与返回的所有其他列一起使用。也许我可以手动收集id并运行第二个查询,但这可能相当无效。SELECT id, active FROM table1 WHERE id IN ([query above])
Cats萌萌
相关分类