Объединение двух запросов с одним и тем же параметром привязки

У меня есть первый SQL-запрос, получающий таблицу с id_member в качестве параметра

$stmt = $mysqli -> prepare("SELECT a.id_alerte, a.nom_alerte, ar.id_roster, r.nom_roster, FROM alerte a, alerte_par_roster ar, roster_par_membre rm INNER JOIN roster r ON r.id_roster = rm.id_roster WHERE rm.id_roster = ar.id_roster AND ar.id_alerte = a.id_alerte AND rm.id_membre = ?"); $stmt->bind_param('i', $id_membre); 

Мне нужно вставить второй запрос, подсчитывающий количество строк в другой таблице.

Второй запрос:

 "SELECT COUNT(DISTINCT id_roster) FROM disponibilites_par_member_alertes WHERE id_member = ? AND id_alerte = ?" 

Как вы можете заметить, id_member идентичен в обоих запросах, но id_alerte (используется как параметр второго запроса, является результатом первого запроса). Надеюсь, я поняла. Любая идея будет очень желанной

Я не совсем понимаю, что ваши запросы предназначены для выполнения. Это поможет получить четкую информацию о структуре таблицы и о том, что представляет собой каждое из полей. Я попытался сделать предположение на основе имен таблиц, но не могу быть уверенным, что это правильно.

Первое, что я сделал, это просто преобразовать ваше условие WHERE таким образом, чтобы каждая из таблиц была явно объединена. Это просто для удобства чтения.

 SELECT a.id_alerte, a.nom_alerte, ar.id_roster, r.nom_roster FROM alerte a INNER JOIN alerte_par_roster ar ON ar.id_alerte = a.id_alerte INNER JOIN roster_par_membre rm ON rm.id_roster = ar.id_roster INNER JOIN roster r ON r.id_roster = rm.id_roster WHERE rm.id_membre = ? 

Теперь мы объединяемся с другим запросом:

 SELECT a.id_alerte, a.nom_alerte, ar.id_roster, r.nom_roster, rc.id_roster_count FROM alerte a INNER JOIN alerte_par_roster ar ON ar.id_alerte = a.id_alerte INNER JOIN roster_par_membre rm ON rm.id_roster = ar.id_roster INNER JOIN roster r ON r.id_roster = rm.id_roster LEFT JOIN ( SELECT id_membre, id_alerte, COUNT(DISTINCT id_roster) AS id_roster_count FROM disponibilites_par_member_alertes GROUP BY id_membre, id_alerte ) AS rc ON rc.id_membre = rm.id_membre AND rc.id_alerte = ar.id_alerte WHERE rm.id_membre = ? 

С моими собственными сгенерированными данными я получаю такие результаты:

результат запроса

Если этого недостаточно для решения проблемы, вам нужно будет предоставить более подробную информацию о таблицах и дизайне.