今天使用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 完美运行
任务完成了 我们再找找官方解释吧
好吧 没找到 小伙伴帮忙找找 感谢