- ベストアンサー
サブクエリでLIMITが使用できない件
こんばんは。 サブクエリ内でランダムに5件を対象にしようとLIMITをかけてみたのですが、エラー表示されてしまい、調べてみるとサブクエリでLIMITは使えない、と書かれています(いくつかのサイトでは)。 この場合、最初にLIMITを入れたクエリを実施し、その結果を仮想テーブルのように扱い、それをサブクエリの対象にするしか方法は無いのでしょうか? またその場合「クエリのクエリ」になると思うのですが、 クエリ結果を仮想テーブルとして扱う場合の方法が良くわからず、 そこも教えていただけますと幸いです。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
TEMPORARYに落とせばできそうですよ。 CREATE TEMPORARY TABLE TEMP SELECT data FROM `hoge` ORDER BY RAND() LIMIT 5; SELECT * FROM `fuga` WHERE data in (SELECT data FROM TEMP)
お礼
yambejpさん ありがとうございます! テンポラリーを生成すると仮想テーブルになるのですね。 試してみましたら、狙ったとおりの結果が表示されました! ありがとうございました!