У меня есть следующие 4 таблицы.
1. DEBATES.
[ID, STARTER_PACK_ID]
2. DEBATE_GROUPS.
[ID, DEBATE_ID, STAKEHOLDER_ID]
3. DEBATE_STAKEHOLDERS.
[ID, STARTER_PACK_ID, NAME]
4. DEBATE_STARTER_PACKS.
[ID]
Я пытаюсь выбрать каждую группу дебатов с идентификатором каждого заинтересованного лица, именем идентификатора заинтересованного лица и количеством участников этого обсуждения, ГДЕ starter_pack_id равен определенным значениям. Например, они должны быть показаны, даже если счетчик равен 0 или присутствуют нулевые значения.
Ожидаемый результат:
DEBATE_ID | STAKEHOLDER_ID | COUNT(Example)
-------------------------------------------
1 1 2
1 2 1
1 3 3
2 1 4
2 2 1
2 3 2
Проблема в том, что в базе данных не отображаются дебаты, которые не использовались
, а это то, что мне нужно. Что мне следует изменить в приведенном ниже коде, чтобы получить эту информацию?
Ниже представлена моя попытка...
SELECT
a.id,
a.name,
a.abbreviation,
b.debate_id,
IF(COUNT(b.stakeholder_id) = 0, 0, COUNT(b.stakeholder_id)) AS total_freq,
COUNT(b.stakeholder_id) AS freq
FROM
debate_stakeholders a LEFT JOIN debate_groups b ON b.stakeholder_id = a.id
GROUP BY
a.id, b.debate_id
HAVING
COUNT(*) < 3
ORDER BY
a.id,b.debate_id,b.stakeholder_id
Подробнее здесь: https://stackoverflow.com/questions/388 ... ogic-error
Таблица левого соединения MYSQL с выбором данных - логическая ошибка ⇐ Php
Кемеровские программисты php общаются здесь
1763824733
Anonymous
У меня есть следующие 4 таблицы.
1. DEBATES.
[ID, STARTER_PACK_ID]
2. DEBATE_GROUPS.
[ID, DEBATE_ID, STAKEHOLDER_ID]
3. DEBATE_STAKEHOLDERS.
[ID, STARTER_PACK_ID, NAME]
4. DEBATE_STARTER_PACKS.
[ID]
Я пытаюсь выбрать каждую группу дебатов с идентификатором каждого заинтересованного лица, именем идентификатора заинтересованного лица и количеством участников этого обсуждения, ГДЕ starter_pack_id равен определенным значениям. Например, они должны быть показаны, даже если счетчик равен 0 или присутствуют нулевые значения.
Ожидаемый результат:
DEBATE_ID | STAKEHOLDER_ID | COUNT(Example)
-------------------------------------------
1 1 2
1 2 1
1 3 3
2 1 4
2 2 1
2 3 2
Проблема в том, что в базе данных не отображаются дебаты, которые не использовались
, а это то, что мне нужно. Что мне следует изменить в приведенном ниже коде, чтобы получить эту информацию?
[b]Ниже представлена моя попытка...[/b]
SELECT
a.id,
a.name,
a.abbreviation,
b.debate_id,
IF(COUNT(b.stakeholder_id) = 0, 0, COUNT(b.stakeholder_id)) AS total_freq,
COUNT(b.stakeholder_id) AS freq
FROM
debate_stakeholders a LEFT JOIN debate_groups b ON b.stakeholder_id = a.id
GROUP BY
a.id, b.debate_id
HAVING
COUNT(*) < 3
ORDER BY
a.id,b.debate_id,b.stakeholder_id
Подробнее здесь: [url]https://stackoverflow.com/questions/38844063/mysql-left-join-table-selecting-data-issue-logic-error[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия