2017-09-29 4 views
0

Gibt es eine Möglichkeit, zwei Tabellen gleichzeitig auszuwählen und zu gruppieren?Zwei Tabellen in einer Abfrage gruppieren

Meine Frage:

SELECT t1.id, t1.estimated_sum_all, t1.story_point_sum_all, 
t1.time_spent, t2.id, t2.time_spent FROM 
burndown_snap_all t1, status_history_hours t2 WHERE t1.project_id = 72 
AND t2.project_id = 72 group by t1.id 

Ergebnisse:

enter image description here

Das Problem ist, dass ich auch die zweite Tabelle zu gruppieren möchten ((status_history_hours)) eine richtige Ergebnisse in eins zu bekommen Abfrage.

Proben:

Ich habe zwei Tabellen:

SELECT * FROM `burndown_snap_all` WHERE project_id=72 

Ergebnisse: enter image description here

SELECT * FROM `status_history_hours` WHERE project_id=72 

Ergebnisse:

enter image description here

Was ich tun möchte, ist die zweite Spalte auf das Ergebnis (time_spent)

+0

was meinst du mit "ich würde gerne gruppieren"? Sie brauchen eine Summe .. oder eine Zählung.?. zeigen Sie bitte auch eine ordnungsgemäße Datenproben bitte – scaisEdge

Antwort

0

Ja, Sie gruppieren die Tabellen alle

brauchen

Aber Gruppe kann zu verbinden, indem für Aggregationsfunktion zB Summe() verwendet wird oder Zählung(), so konnte man

SELECT 
    t1.id 
    , t1.estimated_sum_all 
    , t1.story_point_sum_all 
    , sum(t1.time_spent) 
    , t2.id 
    , sum(t2.time_spent) 
FROM burndown_snap_all t1 
INNER JOIN status_history_hours t2 ON t1.project_id = 72 AND t2.project_id = t1.project_id 
group by t1.id , t1.estimated_sum_all , t1.story_point_sum_all , t2.id 

sonst, wenn nicht aggreagtion fynction benötigen und Sie müssen duplizierten Wert vermeiden Sie verschiedene verwenden sollten und nicht die Gruppe

SELECT disticnt 
    t1.id 
    , t1.estimated_sum_all 
    , t1.story_point_sum_all 
    , t1.time_spent 
    , t2.id 
    , t2.time_spent 
FROM burndown_snap_all t1 
INNER JOIN status_history_hours t2 ON t1.project_id = 72 AND t2.project_id = t1.project_id