$ i table: id, item_name
Таблица $ t: id, имя_члена, имя_позиции
$ u table: id, имя_символа, членство_статус
я бы хотел
Это то, что я до сих пор отвечаю на первую часть моего вопроса:
$find_actives = mysql_query ("select $i.item_name,
count($t.item_name) from $i left
join $t on $i.item_name = $t.item_name group by $t.item_name")
Но когда я изменяю его на запрос ниже, он больше не перечисляет ВСЕ элементы в $ i.
$find_actives = mysql_query ("select $i.item_name,
count($t.item_name) from $i left
join $t on $i.item_name = $t.item_name
where $t.member_name IN (select distinct member_name from $u
where membership_status = 'active' group by member_name)
group by $t.item_name")
Я хотел бы, чтобы результаты выглядели так:
item_name1 — count = 5
item_name2 — count = 0 // это пропавшая строка
item_name3 — count = 2
Как мне этого добиться?
Если я правильно читаю ваш вопрос, думаю, это то, что вы ищете:
SELECT
$i.item_name,
COUNT(temp.item_name) AS item_count
FROM $i
LEFT JOIN (
SELECT $t.item_name AS item_name
FROM $t
INNER JOIN $u
ON $t.member_name = $u.member_name
WHERE $u.membership_status = 'active'
) AS temp
ON $i.item_name = temp.item_name
GROUP BY $i.item_name
Других решений пока нет …