У меня небольшая икота в отношении конкретного запроса SQL.Мне нужно объединить данные из двух таблиц, одновременно ограничивая данные (но не обязательно захватывая их) с помощью третьей таблицы.Таблицы следующие:
MEMBERS(member_id,first_name,last_name)
MEMBERS_GROUPS(member_id,group_id)
CHARGES(charge_id,member_id,charge_amount,status)
Мне нужно найти все расходы для всех членов определенной группы, но я также хочу получить имя и фамилию из таблицы MEMBERS.Вопрос, который я до сих пор задавал:
select c.*, m.first_name, m.last_name
FROM charges c
LEFT JOIN member m
ON c.member_id=m.member_id
INNER JOIN members_groups mg
ON mg.group_id=1
Я также пытался:
SELECT c.*, m.first_name, m.last_name
FROM charges c, members_groups mg, member m
WHERE c.member_id=mg.member_id
AND mg.group_id = 1
AND c.status='Valid'
AND c.member_id = m.member_id
… но ни тот, ни другой не возвращает нужные мне данные.Я уверен, что обдумываю это, но я не могу за всю жизнь получить правильные значения.Я продолжаю получать то, что выглядит как декартово произведение - независимо от того, что оно явно возвращает слишком много строк и неверных данных.