SELECT連表查詢重複字段

連表查詢不用SELECT * 直接用 SELECT FIELD 列字段,錯誤:兩個表出現重複的兩個字段userId:

Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'userId' in field list is ambiguous

eg: 兩個表blog和user連表查詢:

select
	userId,publishDateTime,blogId,blogTitle,blogContent
from blog
	inner join user on blog.userId=user.userId
order by
	publishDateTime desc limit #{page},#{limit}

(1)、第一種,只保留其中一個字段:

select
	blog.userId,publishDateTime,blogId,blogTitle,blogContent
from blog
	inner join user on blog.userId=user.userId
order by
	publishDateTime desc limit #{page},#{limit}

(2)、第二種,保留兩個字段,起別名:

select
	blog.userId as userId,user.userId as uid,publishDateTime,blogId,blogTitle,blogContent
from blog
	inner join user on blog.userId=user.userId
order by
	publishDateTime desc limit #{page},#{limit}

  保證結果有自己起的別名屬性字段

(3)、第三種,給表起別名:

select
	bb.userId,uu.userId as uid,publishDateTime,blogId,blogTitle,blogContent
from blog bb
	inner join user uu on bb.userId=uu.userId
order by
	publishDateTime desc limit #{page},#{limit}
	
或者加上as:

select
	bb.userId,uu.userId as uid,publishDateTime,blogId,blogTitle,blogContent
from blog as bb
	inner join user as uu on bb.userId=uu.userId
order by
	publishDateTime desc limit #{page},#{limit}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章