Mysql - сумма сумм нескольких соединенных таблиц - PullRequest
2 голосов
/ 22 ноября 2011

Я сделаю все возможное, чтобы объяснить это ясно.Я пытаюсь выполнить две вещи, но у меня возникают проблемы, даже если заставить первую работать правильно.

У меня есть схема, в которой есть таблица элементов, которая имеет внешние ключи для нескольких таблиц.В конце я собираюсь нарисовать около 10 таблиц, которые могут иметь или не иметь записи для конкретного члена.Я пытаюсь получить сумму всех подсчетов.Мой запрос выглядит так:

SELECT (COUNT(tb1.member_id) + COUNT(tb2.member_id)) as total
FROM members m
LEFT JOIN table_1 tb1 ON tb1.member_id = m.member_id
LEFT JOIN table_2 tb2 ON tb2.member_id = m.member_id
WHERE m.member_id = 27

Где 27 - member_id тестового аккаунта, с которым я работаю.Это не дает точных результатов, и я полагаю, что это из-за левого соединения, кажется, что это сбрасывает со счетов, и я получаю в общей сложности 8, хотя есть только две записи каждого вида.Если я устраню одно из левых соединений, то получу ожидаемый результат.

Может ли кто-нибудь сказать мне, как мне поступить в этом направлении?

Это первая часть моей проблемы.Вторая проблема заключается в том, что в некоторых из этих случаев я хочу, чтобы каждый результат учитывался как 1 или 0, то есть даже если есть 2 или 3 соответствующих записи.Я искал что-то вроде броска результата как бул, но ничего не нашел.Кто-нибудь может предложить способ сделать это?

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

1 Ответ

1 голос
/ 22 ноября 2011

Даже если я не знаком с современным уровнем развития MySQL, я почти уверен, что что-то подобное будет работать:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...