Это первый раз, когда я пытаюсь использовать оператор UNION MySQL, но следующий код дает мне ошибку «неопределенный индекс: женщина».Использование агрегатных функций MySQL и оператора UNION вместе
$sql = "(SELECT COUNT(gender) AS male FROM members WHERE gender='m')
UNION
(SELECT COUNT(gender) AS female FROM members WHERE gender='f')
UNION
(SELECT COUNT(gender) AS no_gender FROM members WHERE gender='n')
";
$results = $con->query($sql);
if ($row = $results->fetch_assoc()) {
print $row["male"] . "<br>";
print $row["female"] . "<br>";
print $row["no_gender"] . "<br>";
}
Таким образом, на основе решения по fancyPants, следующие работали:
print "<table>";
$sql = "SELECT gender, COUNT(1) AS no_of_genders
FROM members
WHERE user_id = $user_id
GROUP BY gender";
$results = $con->query($sql);
while ($row = $results->fetch_assoc()) {
print "<tr><td>" . $row["gender"] . "</td><td>" . $row["no_of_genders"] . "</td></tr>";
}
print "</table>";
один '' user_id'' с несколькими полами ???? –
В одном объединении один столбец имеет только одно имя. Итак, все ваши подсчеты находятся в столбце 'male', но в разных строках. – Jens
@ Ravinder, no_gender - член, где не человек, а какая-то компания или учреждение. –