开发者社区> 问答> 正文

in的用法提问:select * from A,(select b1.id,b1?报错

如题,sql语句如下

select * from A,(select b1.id,b1.date from btable b1) B where A.id in B.id



这样的SQL语句会报错,是哪里出问题了吗?还是说in不能这样调用?

我知道另一种写法是正确的:

select * from A where A.id in (select b1.id from btable b1)



但是我现在还特别需要那个b1.date 这个数据,各位有办法吗?


展开
收起
爱吃鱼的程序员 2020-06-09 11:19:36 546 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    如果是mysql,用find_in_set函数

    SQL改成

    select*fromA,(selectb1.id,b1.datefrombtableb1)Bwherefind_in_set(A.id,B.id)



    可以了,感谢*改成A.ID,XXXXXXXX和in没啥关系吧,你前面的地方是什么情况?select 中间的逗号呢回复 @BanJom:66666回复 @刘大神:不会啊,那是将一条SQL语句作为一个表来使用~我用的是mysql回复 @BanJom:那表B前面的括号是干啥的?你写sql的时候不会报错么?报错信息都没有么?那个是表A,逗号隔开后面的表B~~~existsfromAleftjoinBonA.id=B.id这种也行,但是我更多想直接用条件查询~无论如何还是挺感谢的
    2020-06-09 11:19:52
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
对 2000 多亿条数据做一次 group by 需要多久? 立即下载
对2000多亿条数据做一次Group By 需要多久 立即下载
低代码开发师(初级)实战教程 立即下载

相关实验场景

更多