Мне интересно, как именно выполнить трехстороннее соединение, используя следующую структуру (значительно упрощенную)
**Table 1:**
vote.id
vote.item_id
**Table 2:**
item.id
item.owner_id
**Table 3**
owner.id
Моя цель здесь - в основном подсчитать количество голосов, которые имеет «владелец». Я продолжаю думать, что я могу просто сделать это, используя коррелированный подзапрос, но кажется, что это было бы повышением производительности, если бы голоса были огромными? Может я не прав? Я просто не могу обойти 3 (или более) стола, как это. Возможно ли сделать это за 1 запрос, а не за 2 шага?
е
SELECT owner.id,
(SELECT count(SELECT count(vote.id) as Cnt WHERE vote.item_id = item.id) as ItemCnt
WHERE item.owner_id = owner.id) as TotalCnt
WHERE owner.id = :id
Будет ли что-то подобное даже работать? Есть ли лучший, более эффективный способ сделать это?
Любая помощь или совет, как всегда, очень ценятся