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をちゃんと貼っとけばそれなりに動きそうだけど。どうだろ?