LIMIT付きのサブクエリでWHERE INしたい時のメモ
2011年8月23日
普通に書くと
SELECT * FROM hoge WHERE id IN ( SELECT id FROM foo LIMIT 10 );
ですが、実行すると
ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
このバージョンじゃ使えねーよと。
ってことで、
SELECT * FROM hoge WHERE id IN ( SELECT id FROM ( SELECT id FROM foo LIMIT 10 ) AS foo2 );
INで使えないならFROMで使う。
(サブサブクエリ?w)
INDEXをちゃんと貼っとけばそれなりに動きそうだけど。どうだろ?