我有一个包含3个字段的表: user_id
, name
, value
表中没有主键 user_id
可以有重复的值,对于 name
有枚举字段“年龄”、“工作”和“薪资”。
user_id | name | value
------------------------
1 | age | 20
------------------------
1 | job | IT
------------------------
2 | salary | 20000
------------------------
2 | job | Dev
------------------------
2 | age | 30
------------------------
我想创建一个如下的结构
user_id | age | job | salary
----------------------------
1 | 20 | IT | NULL
----------------------------
2 | 30 | Dev | 20000
----------------------------
主要查询:
rows, err := db1.Query("select user_id from main_users");
for rows.Next() {
rows.scan(&user_id)
id := reflect.ValueOf(user_id)
user_idvalue := id.Interface().(int)
rows1, err1 := db1.Query("select age from users where user_id=$1", user_idvalue)
rows2, err2 := db1.Query("select job from users where user_id=$1", user_idvalue)
rows3, err3 := db1.Query("select salary from users where user_id=$1", user_idvalue)
}
我被困在与其他3个查询的id进行比较的每个结果行的部分,并显示为一个表。
2条答案
按热度按时间rsaldnfx1#
首先,查询应该如下所示。
然后这些值与你想要的有关。根据您的描述,每个结果中应该只有一行。
cygmwpex2#
您可以使用key=user\u id和value=user struct创建一个Map
定义用户结构和Map:
从表中获取全部数据并开始将其加载到Map中