2016-04-25 17 views
0

Ich arbeite gerade an einer Java-Anwendung, die mir die Anzahl der Abonnenten jedes Mobilfunkbetreibers bringen kann. Um dies zu tun, habe ich eine Tabelle mit allen Operatoren erstellt, ich nannte es indicatifs und es enthält die 3 Zeilen: country, operator und mobile_prefix. Meine zweite Tabelle, die so genannte U-Boote enthält zwei Reihen: mobile_prefix und die Anzahl der Abonnenten Welche Abfrage soll ich verwenden, um so etwas zu bekommen:Wie bekomme ich die Anzahl der Abonnenten mit 2 Tabellen?

Operator Country Number of Subscribers 
SFR  France 20000 
T-Mobile USA  10250 
Telia  Sweden 5248 

.. jede Art von Hilfe wirklich geschätzt würde. Danke!

Antwort

0
select a.operator,a.country,b.number_of_subscriber from table1 a left join table2 b on a.mobile_prefix = b.mobile_prefix; 

Ist das was du willst ?? Bitte überprüfen

+0

So shoud ich mobile_prefix als Fremdschlüssel verwenden? –

+0

Da die Spalte mobile_prefix in beiden Tabellen vorhanden ist, dachte ich, dass sie sich auf Datensätze in einer anderen Tabelle beziehen würde. – Priyanshu

0

Diese Abfrage erfordert eine join und group by. Sie verwenden möchten ein left join - vorausgesetzt, Sie alle Betreiber wollen, auch diejenigen, die keine Abonnenten:

select i.operator, i.country, count(s.mobile_prefix) as numsubs 
from indicatifs i left join 
    subs s 
    on i.mobile_prefix = s.mobile_prefix 
group by i.operator, i.country 
order by numsubs desc; 
0

versuchen auf diese Weise

select a.country, a.operator, count(*) as subscriber 
from indicatifs a 
left join subs b 
on a.mobile_prefix = b.mobile_prefix 
group by a.operator, a.country 
Verwandte Themen