0

我有一个复杂的嵌套查询,它位于连接内,是否可以找到与该查询匹配的多个列,而不是在连接中重复查询?IE:

select * from 
A left join B on a.xid=b.xid and 
(a.userid or b.userid) in (select userid from A where..) 

^^^ 不想重复嵌套查询...

有一个嵌套查询应该匹配父查询中的几个列(如上例所示)。简单的方法是多次复制嵌套查询。IE-

select * from A
left join B
  on a.xid=b.xid
  and a.userid in (select userid from ...)
  and b.userid in (Select userid from ....)

但是 - 由于子查询有点复杂,我不希望 mysql 运行它两次,而是只运行一次,而不是将它与几个父查询列匹配。

4

1 回答 1

0

如果您的子查询工作正常并且您打开了查询缓存,您就不必担心性能问题。如果它是一个过于复杂的问题,那么也许你可以使用一个 proc 来进行这个查询:将 sub 的结果放入一个临时表并加入它。

有很多方法可以解决这个问题。

于 2012-05-01T14:55:07.003 回答