2010-12-16 1 views
0

Ich brauche alle Kommentare zurückzukehren, die auf einem Ziel gemacht wurden, wo id = 2Verbindungs ​​5 ​​Tische Alle Kommentare zu Ziel gesetzt, zu erhalten, wo id = 2

Tabellen:

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

Transaktionen Tabelle Spur hält von allen Schritten, auf die sich ein Kommentar bezieht.

Jeder Kommentar kann mehrere Schritte betreffen, daher eine Tabelle (Transaktionen - ich weiß, schlechte Namenskonvention in dieser Tabelle), um jeden Schritt und den Kommentar zu verfolgen.

So wird die Transaktionen Tabelle wie folgt aufgebaut:

transactions.step_id | transactions.comment_id 

So ist der Benutzer alle Kommentare sehen möchten, das Ziel beziehen, in denen id = 2

Ich habe noch nie etwas getan, mehr als 2 Tabellen , so wird jede Hilfe geschätzt.

+0

„Transaktionen“ bringt mich zum Lächeln. In einem der ersten Projekte, an denen ich arbeitete, dachte ich, "Bestellung" sei ein guter Tabellenname. Zwischen dir und mir gibt es wenigstens ein paar gute Tabellennamen. – kevpie

Antwort

2
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

Das ist, was ich schrieb :)

Eine Sache, wenn die Beziehungen sind nicht obligatorisch vielleicht kommen Sie links in einigen Fällen verwenden müssen

+0

+1, hilft nur einige Punkte zu bekommen, damit Sie anfangen können, zu kommentieren. :-) – kevpie

Verwandte Themen