Hallo erstmal,
..okay-> wieder so ein Thread zum leidigen Thema "Joins".
Ich bin normalerweise im basteln recht kreativ, aber hier sehe ich den Wald vor lauter Bäumen nicht mehr. Ich hoffe, dass mir hier jemand zum Geistesblitz verhilft..
Ich will aus 4 Tabellen Informationen holen. Mein Problem ist, dass die Tabellen nicht von mir stammen- nicht richtig normalisiert sind und ich schon nur für das Verständnis der Relationen recht lang gebraucht habe.. Da hat sich einer nicht viel Gedanken zur Übersichtlichkeit gemacht...
Gegeben sind 4 Tabellen:
(*R1-3) bezeichnet die Relationen
|br_Kunden| ------ | br_Produkt | ------- | Kundenlogin |-------| cdr |
c_id (*R1) -------- (*R1) ref_number ----- number (*R2)--- (*R2) c_number
c_name ----------- p_account (*R3) ----- (*R3)pin ------------- cli_von
---------------------------------------------------------------- c_nach
1) In br_Kunden sind Namen von Kunden sowie eine ID, welche in Beziehung mit der ref_number von br_Produkt steht.
2) In cdr sind Daten dieser Kunden cli_von und cli_nach sind Telefonnummern von ->und nach- also Ziel, allerdings keine Namen.
Ich möchte alle Daten der Tabelle cdr (für einen bestimmten Zeitraum, aber die Syntax hierfür in der where-Klausel ist mir klar...) mit der br_Kunden-Tabelle verknüpfen- also sehen, wer hier was von- oder nach vertelefoniert hat...
Ich hab ein Brett vorm Kopf, weil ich es nicht hinbekomme.
Folgendes ist mir eingefallen:
SELECT t1.c_umber,t1.cli_von,t1.cli_nach,t2.c_name from cdr t1,br_Kunden t2 INNER JOIN Kundenlogin t3 on t1.c_number = t3.number
INNER JOIN br_Produkt t4 on t4.ref_number = t2.c_id
WHERE t1.calltime > '20040101000000' and t2.c_automatic_recharge_activation_status='not_used' LIMIT 0,1000;
Es werden auch Daten ausgegeben- nur ist c_name immer der gleiche.
Weiss hier jemand weiter?
Gruss
phpForX
..okay-> wieder so ein Thread zum leidigen Thema "Joins".
Ich bin normalerweise im basteln recht kreativ, aber hier sehe ich den Wald vor lauter Bäumen nicht mehr. Ich hoffe, dass mir hier jemand zum Geistesblitz verhilft..
Ich will aus 4 Tabellen Informationen holen. Mein Problem ist, dass die Tabellen nicht von mir stammen- nicht richtig normalisiert sind und ich schon nur für das Verständnis der Relationen recht lang gebraucht habe.. Da hat sich einer nicht viel Gedanken zur Übersichtlichkeit gemacht...
Gegeben sind 4 Tabellen:
(*R1-3) bezeichnet die Relationen
|br_Kunden| ------ | br_Produkt | ------- | Kundenlogin |-------| cdr |
c_id (*R1) -------- (*R1) ref_number ----- number (*R2)--- (*R2) c_number
c_name ----------- p_account (*R3) ----- (*R3)pin ------------- cli_von
---------------------------------------------------------------- c_nach
1) In br_Kunden sind Namen von Kunden sowie eine ID, welche in Beziehung mit der ref_number von br_Produkt steht.
2) In cdr sind Daten dieser Kunden cli_von und cli_nach sind Telefonnummern von ->und nach- also Ziel, allerdings keine Namen.
Ich möchte alle Daten der Tabelle cdr (für einen bestimmten Zeitraum, aber die Syntax hierfür in der where-Klausel ist mir klar...) mit der br_Kunden-Tabelle verknüpfen- also sehen, wer hier was von- oder nach vertelefoniert hat...
Ich hab ein Brett vorm Kopf, weil ich es nicht hinbekomme.
Folgendes ist mir eingefallen:
SELECT t1.c_umber,t1.cli_von,t1.cli_nach,t2.c_name from cdr t1,br_Kunden t2 INNER JOIN Kundenlogin t3 on t1.c_number = t3.number
INNER JOIN br_Produkt t4 on t4.ref_number = t2.c_id
WHERE t1.calltime > '20040101000000' and t2.c_automatic_recharge_activation_status='not_used' LIMIT 0,1000;
Es werden auch Daten ausgegeben- nur ist c_name immer der gleiche.
Weiss hier jemand weiter?
Gruss
phpForX
Kommentar