私は高度なMySQLクエリのものに熟練していません。(主に基本的なクエリ、返信、解析応答など)複数のクエリまたは1つで実行できますか?
しかし、私は複数のものが必要なときに正しいアプローチでは不明ですこれらのことを単一のクエリから取得する方法はありますか?または毎回新しいクエリを実行する必要がありますか?
背景:私は、SELECT文
すなわちを行うにはPDOを使用し :
$getAllVideos_sql = "SELECT * as FROM $tableName WHERE active IS NOT NULL OR active != 'no' ORDER BY topic, speaker_last, title;";
$getAllVideos_stmt = $conn->prepare($getAllVideos_sql);
$getAllVideos_stmt->execute();
$getAllVideos_stmt->setFetchMode(PDO::FETCH_ASSOC);
$results = $getAllVideos_stmt->fetch(PDO::FETCH_ASSOC);
//parse as I see fit
これは私が離れて選ぶと、私が望むように表示することができ、私のデータのチャンク」を提供します。
は、しかし..私はまた、(すべて一意である必要があるのタイトル "のためにいくつかの統計情報(合計)合計
(明確な)「トピック」..だけでなく、トータルカウントを与えることができるようにしたいです
別のクエリを実行し、準備し、実行し、setFetchModeして、もう一度フェッチする必要がありますか?
これは適切な方法ですか?あるいは、既にプレイ中の最初のコマンドを受け入れる方法がありますか?
明確にするために、私は本当にクエリを探していません...私は私のようにいくつかのデータが必要なときに、これを行う正しい方法を理解していますか?複数のクエリと実行...など?
それとも、1つのスニペットで行うことができますか?サブ選択/クエリ情報を返すためのクエリ自体の調整?
それだけで1つのレコードを返しますので、これは...、正しい構文をイマイチ(ただし、総トピック数は、私が唯一の1つのレコードが返されますにもかかわらず、正しいように思える)
SELECT *、カウント数( DISTINCTトピック)totalTopicsとして、totalTitles FROM $ tableNameとしてcount(DISTINCT title)を指定します。
もっと適切なアプローチですか?主なクエリにこれらの合計/詳細を含めて試してみてください。
希望はこれが理にかなっています。
返事ありがとうございます。これは、JOINSなしで更新されたクエリ(私は構文エラーがありました)を使用しているようです.. '$ getAllVideos_sql =" SELECT *(SELECT count(DISTINCT(トピック))FROM $ tableName WHERE active = ' (アクティブ) ')totalTitles FROM $ tableNameアクティブなIS NOT NULLまたはアクティブ='アクティブな 'ORDER BYのトピック、speaker_last、title; "activeTopics"としてのtotalTopics、(SELECT count(DISTINCT(タイトル))FROM $ tableName WHERE active = ; ' しかし、サブクエリの-as-値をターゲットにすることはできません。 例:$ results ['totalTopics'] クエリからこれらの値を取得するにはどうすればよいですか? – whispers
情報をどのように取得するかによって、$ resultsは期待している構造にない可能性があります。 'var_dump($ results)'を試して、$結果に戻ったものを見てください。 –