私の選択ステートメントは次のようになります。
CREATE TEMPORARY TABLE t1 AS(
SELECT id, COUNT(*) AS count
FROM some_other_table
GROUP BY id);
ALTER TABLE t1 ADD UNIQUE INDEX (id);
SELECT * FROM t2 INNER JOIN t1 ON t1.id = t2.id
私は次のPHPコードを使用しています:
$pdo->query($sql)->fetchAll();
しかし、PDO では 1 つのクエリで複数のステートメントを実行できないため、エラーが発生します。
これまで読んだことから、exec() を使用する必要があります。しかし、exec() は select ステートメントの結果を返しません。この特定のクエリのパラメーター化は必要ないため、クエリ自体は外部の変更から完全に安全であるため、安全でないメソッドも機能します。
今私がやっていることは、SQL コードを 3 つの異なるステートメントとして実行することです。しかし、それは一度に実行するよりも遅いと思います。これを行うためのより良い方法を見つけたいと思います。