如何将字段与子查询返回的所有行进行比较

时间:2015-01-19 23:27:26

标签: mysql sql select subquery

WHERE a.field = (SELECT a.field FROM a INNER JOIN b ON a.field = b.field)

我如何比较?此查询返回此错误语句“子查询返回多行”

是否可以将它与子查询返回的所有内容进行比较?

2 个答案:

答案 0 :(得分:0)

您应该能够将IN子句与子查询一起使用:

在哪里a.field IN(在a.field = b.field中从内部联接选择a.field)

http://dev.mysql.com/doc/refman/5.1/en/any-in-some-subqueries.html

答案 1 :(得分:0)

您可以通过三种方式比较所有行。

使用In运算符

WHERE ou.field in (SELECT a.field 
                   FROM a 
                   INNER JOIN b 
                   ON a.field = b.field)

或使用Exists

WHERE exists (SELECT a.field 
                   FROM a 
                   INNER JOIN b 
                   ON a.field = b.field
                   where ou.field=a.field)

或使用Inner Join

Ou Inner Join (SELECT a.field 
                   FROM a 
                   INNER JOIN b 
                   ON a.field = b.field) c
   On ou.field = c.field