объединение 5 таблиц, чтобы получить все комментарии о цели, где id = 2 - PullRequest
0 голосов
/ 16 декабря 2010

Мне нужно вернуть все комментарии, которые были сделаны к цели, где id = 2

Таблицы:

goals.id = objectives.goal_id
objectives.id = steps.objective_id
steps.id = transactions.step_id
comments.id = transactions.comment_id

Таблица транзакций отслеживает все шаги, с которыми был связан комментарий.

Каждый комментарий может быть связан с несколькими шагами, поэтому таблица (транзакции - я знаю, соглашение об именах для этой таблицы) для отслеживания каждого шага и комментария.

Итак, транзакциитаблица настроена так:

transactions.step_id | transactions.comment_id

Таким образом, пользователь хотел бы просмотреть все комментарии, относящиеся к цели, где id = 2

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

Ответы [ 2 ]

2 голосов
/ 16 декабря 2010
select c.*
from goal g 
inner join objectives o on g.id = o.goal_id 
inner join steps s on o.id = s.objective_id 
inner join transaction t on s.id = t.step_id 
inner join comments c on t.comment_id = c.id
where g.id = 2
0 голосов
/ 16 декабря 2010

Вот что я писал :) 1001 *

Одна вещь, если отношения не являются обязательными, возможно, в некоторых случаях нужно использовать левое соединение

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