Guten Morgen,
ich weiss nicht, wie ich folgendes Problem lösen kann:
Es gibt eine Tabelle
egw_addressbook (contact_id, name, org_name, contact_email, ...)
in der die wesentlichen Kontaktdaten gespeichert werden und es gibt eine weitere Tabelle
egw_addressbook_extra (contact_id, contact_name, contact_value)
in der benutzerdefinierte Zusatzdaten gespeichert werden.
In der egw_addressbook_extra steht z.b. sowas:
4711, Skonto, 3
4711, Freigrenze, 500
4711, Bild, abc.gif
4821, Skonto,4
4821, Familienstand, ledig
4813, Skonto,4
4813, Bild, blue.gif
4813, Geschlecht, männlich
Verknüpfen kann man die über
ON egw_addressbook.contact_id=egw_addressbook_extra.contact_id
Jetzt möchte ich gerne eine Abfrage haben, die mir sämtliche Kontaktdaten aus der ersten Tabelle und zusätzlich alle Extra-Daten aus letzterer Tabelle liefert.
z.B. sollte sowas rauskommen:
4711, Meier, BMW, meier@bmw.de, Skonto=3, Freigrenze=500, Bild=abc.gif
4821, Stein, BASF, stein@basf.de, Skonto=4, Familienstand=ledig
4813, Koch, Audi, koch@audi.de, Skonto=4, Bild=blue.gif, Geschlecht=männlich
Ich hab's mal so probiert:
SELECT distinct egw_addressbook.contact_id, egw_addressbook.org_name, egw_addressbook.contact_email, egw_addressbook_extra.contact_name, egw_addressbook_extra.contact_value
as lieferanteninfosFROM egw_addressbook
JOIN egw_addressbook_extraegw_addressbook_extra ON egw_addressbook.contact_id = egw_addressbook_extra.contact_id
Where egw_addressbook.contact_id=339
ORDERBY egw_addressbook.contact_id ASC
aber da bekomme ich 8 rows zurückgeliefert, weil es 8 Einträge in der egw_addressbook_extra gibt...
Kann man sowas mit SQL überhaupt lösen?
ich weiss nicht, wie ich folgendes Problem lösen kann:
Es gibt eine Tabelle
egw_addressbook (contact_id, name, org_name, contact_email, ...)
in der die wesentlichen Kontaktdaten gespeichert werden und es gibt eine weitere Tabelle
egw_addressbook_extra (contact_id, contact_name, contact_value)
in der benutzerdefinierte Zusatzdaten gespeichert werden.
In der egw_addressbook_extra steht z.b. sowas:
4711, Skonto, 3
4711, Freigrenze, 500
4711, Bild, abc.gif
4821, Skonto,4
4821, Familienstand, ledig
4813, Skonto,4
4813, Bild, blue.gif
4813, Geschlecht, männlich
Verknüpfen kann man die über
ON egw_addressbook.contact_id=egw_addressbook_extra.contact_id
Jetzt möchte ich gerne eine Abfrage haben, die mir sämtliche Kontaktdaten aus der ersten Tabelle und zusätzlich alle Extra-Daten aus letzterer Tabelle liefert.
z.B. sollte sowas rauskommen:
4711, Meier, BMW, meier@bmw.de, Skonto=3, Freigrenze=500, Bild=abc.gif
4821, Stein, BASF, stein@basf.de, Skonto=4, Familienstand=ledig
4813, Koch, Audi, koch@audi.de, Skonto=4, Bild=blue.gif, Geschlecht=männlich
Ich hab's mal so probiert:
SELECT distinct egw_addressbook.contact_id, egw_addressbook.org_name, egw_addressbook.contact_email, egw_addressbook_extra.contact_name, egw_addressbook_extra.contact_value
as lieferanteninfosFROM egw_addressbook
JOIN egw_addressbook_extraegw_addressbook_extra ON egw_addressbook.contact_id = egw_addressbook_extra.contact_id
Where egw_addressbook.contact_id=339
ORDERBY egw_addressbook.contact_id ASC
aber da bekomme ich 8 rows zurückgeliefert, weil es 8 Einträge in der egw_addressbook_extra gibt...
Kann man sowas mit SQL überhaupt lösen?
Zuletzt bearbeitet: