Я не очень опытен с более сложными материалами запросов MySQL .. (в основном базовые запросы, возврат и анализ синтаксиса ..)Несколько запросов или можно сделать в одном?
Однако .. Я не совсем понял правильный подход, когда мне нужно несколько вещей (ответы) из базы данных. Есть ли способ получить эти вещи из одного запроса? или мне нужно делать новый запрос за каждый раз?
фона: Я использую PDO, чтобы сделать отборное заявление
Ie:
$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, извлечь все заново?
Это правильный способ сделать это? Или есть способ вырезать начальные команды, которые уже играют?
Чтобы быть ясным, я действительно не ищу запрос ... Я ищу, чтобы понять, как это сделать ... когда им нужно несколько данных, как я? несколько запросов и выполнение ..etc?
Или, может быть, оно может быть сделано в одном фрагменте? С настройкой самого запроса для возврата информации о подборе/запросах?
это не будет правильный синтаксис, поскольку он возвращает только 1 запись .. (но общее количество темы кажется правильным, даже если я получаю только 1 запись возвращенное)
SELECT *, COUNT (DISTINCT) как totalTopics, count (название DISTINCT) как totalTitles FROM $ tableName;
Возможно, это более правильный подход? Попытайтесь включить эти итоговые данные/детали в основной запрос, чтобы выбрать?
Надеюсь, что это имеет смысл.
Благодаря
Спасибо за ответ, похоже, работает с обновленным запросом (у меня были синтаксические ошибки) без каких-либо JOINS. '$ getAllVideos_sql =" SELECT *, (SELECT count (DISTINCT (topic)) FROM $ tableName WHERE active = ' Active ') как totalTopics, (SELECT count (DISTINCT (title)) FROM $ tableName WHERE active =' Active ') в качестве totalTitles FROM $ tableName WHERE active NOT NOT или active =' Active 'ORDER BY, speaker_last, title; " ; ' Однако .. Я не могу настроить таргетинг на мои вспомогательные запросы -as-values? Это не работает, например: $ results ['totalTopics'] Как я могу получить эти значения из моего запроса? – whispers
В зависимости от того, как вы получаете информацию, $ results может быть не в той структуре, которую вы ожидаете. Попробуйте 'var_dump ($ results)', чтобы узнать, что вернулось в $ results –