結合内に複雑なネストされたクエリがありますが、結合でクエリを繰り返す代わりに、そのクエリに一致する複数の列を見つけることは可能ですか?すなわち:
select * from
A left join B on a.xid=b.xid and
(a.userid or b.userid) in (select userid from A where..)
^^^ネストされたクエリを複製したくない...
親クエリのいくつかの列に一致するネストされたクエリがあります(上記の例を参照)。簡単な方法は、ネストされたクエリを数回複製することです。すなわち-
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で2回実行するのではなく、1回だけ実行して、いくつかの親クエリ列と照合します。