SQL-父查询使用子查询的多个列作为结果的用法

原创
2022/02/21 20:26
阅读数 431

今天使用SQL的时候突然遇到一个问题 我用写一个SQL,父查询要使用子查询的多个结果集作为查询结果的条件这可难道我了,咋写呢

我们一般使用的都是这样的:

SELECT * FROM table_a  where id = ? and name = ?;

或者

SELECT * FROM table_a  where id in ( SELECT  id  FROM table_b where id =?) tb;

这样的SQL看起来就很亲切吧,需求是这样的我应该怎么办呢

一顿操作之后然我发现了新大陆

SELECT * FROM mshop_product where (tenant_id,mshop_id,product_id ) =
(SELECT tenant_id,mshop_id,product_id FROM mshop_product where id =1722561040744450)

模板是这样的  SELECT * FROM  table  where (condition1,condition2...) = (select result1,result2... from table) 居然还有这种用法,真的头发长见识短了

但是还有一个问题 如果子查询是多个查询结果会出现 Subquery returns more than 1 row 这个错误  一看就是返回结果大于一条吗

既然这样 我就把"=" 改成in   完美运行

任务完成了 我们再找找官方解释吧

好吧 没找到  小伙伴帮忙找找 感谢

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部