Error 1222 (21000): The used SELECT statements have a different number of columns
时间: 2023-11-15 21:40:55 浏览: 198
ERROR 1222 (21000): The used SELECT statements have a different number of columns
这个错误是由于你的子查询返回的列数不一致导致的。根据你的代码,第一个子查询返回了5列(id、created_at、schedule、content、url),而第二个子查询只返回了3列(id、created_at、content)。由于 UNION 操作要求两个子查询返回的列数必须一致,所以会报错。
为了解决这个问题,你可以在两个子查询中添加相应的空值列来使它们的列数一致。例如,你可以在第二个子查询中添加一个空值列来与第一个子查询的 "schedule" 列对应:
```go
common.DB.Raw("SELECT id, created_at, schedule, content, url FROM records WHERE pm_id = ? AND status = 2 AND deleted_at IS NULL "+
"UNION "+
"SELECT id, created_at, NULL AS schedule, content, NULL AS url FROM supervisings WHERE pm_id = ? AND deleted_at IS NULL")
.Scan(&count)
```
通过在第二个子查询中添加了空值列,使得两个子查询返回的列数保持一致,从而避免了错误。请根据你的具体需求和数据模型进行相应的调整。
阅读全文