select top 10 id,uid,cid,(select username,title from user_list where id=uid) from shop_list order by id desc
想同时取出关联的user_list表里的两个字段,就报错...一个字段就可以了.
错误提示如下:
系统错误:所编写的一个子查询可在不在主查询的 FROM 子句中使用的 EXISTS 保留字的情况下返回多个字段。 修改子查询的 SELECT 语句以只要求返回一个字段。
sql同时提取其它表里的两个数字出错。。。
答案:4 悬赏:0 手机版
解决时间 2021-03-15 11:23
- 提问者网友:浮克旳回音
- 2021-03-14 16:37
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-03-14 17:52
你的错误是子查询返回多行。
这种语句出错是因为,当shop_list 表中id的值在用来查询user_list表时,user_list表存在多余1条的数据与同一个shop_list 中的id匹配,这样就会报这个错误。
改一下语句,这样写:
SELECt Top 10 Shop_List.Id,
Shop_List.Uid,
Shop_List.Cid,
User_List.Username,
User_List.Title
FROM Shop_List,
User_List
WHERe Shop_List.Id = User_List.Uid
ORDER BY Id DESC
注意:WHERe Shop_List.Id = User_List.Uid :id和uid在Shop_List都存在,所以where条件中的所属表名需要检查一下是否正确,不对的话自己改一下就行了。
这种语句出错是因为,当shop_list 表中id的值在用来查询user_list表时,user_list表存在多余1条的数据与同一个shop_list 中的id匹配,这样就会报这个错误。
改一下语句,这样写:
SELECt Top 10 Shop_List.Id,
Shop_List.Uid,
Shop_List.Cid,
User_List.Username,
User_List.Title
FROM Shop_List,
User_List
WHERe Shop_List.Id = User_List.Uid
ORDER BY Id DESC
注意:WHERe Shop_List.Id = User_List.Uid :id和uid在Shop_List都存在,所以where条件中的所属表名需要检查一下是否正确,不对的话自己改一下就行了。
全部回答
- 1楼网友:第四晚心情
- 2021-03-14 21:21
SQL语句错误!有这种数据查询方法?
再看看别人怎么说的。
- 2楼网友:神鬼未生
- 2021-03-14 20:20
该语句就是错误的,shop_list表中的username,title字段与(select username,title from user_list where id=uid)这个两个字段并非同一个.
- 3楼网友:酒者煙囻
- 2021-03-14 19:05
user_list 中的id,uid与shop_list 中的id,uid之间的关系没有界定。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯