Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
649 views
in Technique[技术] by (71.8m points)

在sequelize中多表联查奇葩报错Column 'id' in field list is ambiguous

报错的github项目是egg.js官方的:
https://github.com/eggjs/exam...

image.png
调试信息如下:
image.png

:"SELECT .`id`, .title, .`content`, .user_id, .`created_at`, .updated_at, .`created_at` AS `createdAt`, .updated_at AS updatedAt, .`user_id` AS `userId`, `user`.`id` AS `user.id`, `user`.`name` AS `user.name`, `user`.`age` AS `user.age` FROM `posts` AS LEFT OUTER JOIN users AS user ON .`user_id` = `user`.`id` WHERE .id = 1;"}
original: {"code":"ER_NON_UNIQ_ERROR","errno":1052,"sqlState":"23000","sqlMessage":"Column 'id' in field list is ambiguous","sql":"SELECT .`id`, .title, .`content`, .user_id, .`created_at`, .updated_at, .`created_at` AS `createdAt`, .updated_at AS updatedAt, .`user_id` AS `userId`, `user`.`id` AS `user.id`, `user`.`name` AS `user.name`, `user`.`age` AS `user.age` FROM `posts` AS LEFT OUTER JOIN users AS user ON .`user_id` = `user`.`id` WHERE .id = 1;"}
sql: "SELECT .`id`, .title, .`content`, .user_id, .`created_at`, .updated_at, .`created_at` AS `createdAt`, .updated_at AS updatedAt, .`user_id` AS `userId`, `user`.`id` AS `user.id`, `user`.`name` AS `user.name`, `user`.`age` AS `user.age` FROM `posts` AS LEFT OUTER JOIN users AS user ON .`user_id` = `user`.`id` WHERE .id = 1;

问题描述

egg.js官方examples项目我按照文档跑起来,但却发现有个多表联查的报错,而这个也是我最近项目中要用到的功能,怎么会出现这么奇葩的错误呢?我自己项目报了同样的错误就算了,找了网上很多解决方法都没有,找了一下官方项目跑起来,发现连这么权威的都报错,无语了

问题出现的环境背景及自己尝试过哪些方法

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

哪位大哥可以发表一下意见,谁能解决这个问题,也可以去github上修复一下bug


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

我这边发现,是我的node环境问题。
我这边电脑node版本是12.6.3,出现了报错,所有在这个环境下的sequelize进行关联模型操作都会报这个错误,只要换个低版本的就好了。
但是我还是有点纳闷,因为我一直以为node会做好向下兼容的,怎么会高版本有Bug,低版本就没有了呢?路过的可以发表一下各位的看法,谢谢。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...