• ベストアンサー

サブクエリでLIMITが使用できない件

こんばんは。 サブクエリ内でランダムに5件を対象にしようとLIMITをかけてみたのですが、エラー表示されてしまい、調べてみるとサブクエリでLIMITは使えない、と書かれています(いくつかのサイトでは)。 この場合、最初にLIMITを入れたクエリを実施し、その結果を仮想テーブルのように扱い、それをサブクエリの対象にするしか方法は無いのでしょうか? またその場合「クエリのクエリ」になると思うのですが、 クエリ結果を仮想テーブルとして扱う場合の方法が良くわからず、 そこも教えていただけますと幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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)

doomdoom
質問者

お礼

yambejpさん ありがとうございます! テンポラリーを生成すると仮想テーブルになるのですね。 試してみましたら、狙ったとおりの結果が表示されました! ありがとうございました!

関連するQ&A