Я сделаю все возможное, чтобы объяснить это ясно.Я пытаюсь выполнить две вещи, но у меня возникают проблемы, даже если заставить первую работать правильно.
У меня есть схема, в которой есть таблица элементов, которая имеет внешние ключи для нескольких таблиц.В конце я собираюсь нарисовать около 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 соответствующих записи.Я искал что-то вроде броска результата как бул, но ничего не нашел.Кто-нибудь может предложить способ сделать это?
Большое спасибо за чтение, любой совет будет очень признателен.Вполне возможно, что я подхожу к этой проблеме неправильно, и мы приветствуем любые советы.