verschachtelte Abfrage
am 18.02.2007 23:13:41 von mmollay
Liebe mysql-meister,
Habe 2 Tabellen: firma, rechnungen
Wenn sich Einträge in "firma" befinden, die mit "rechnungen" in
Verbindung stehen werden diese ausgegeben.
Wenn sich allerdings Einträge in der Tabelle "firma" befinden, die mit
noch keiner der Einträge in "rechnungen" in Verbindung stehen, werden
keine Einträge ausgebeben, verständlicherweise :)
Wie kann ich bewerkstelligen, dass auch solche Einträge auch mit
aufgelistet werden.
Bsp:
SELECT SUM( betrag ) AS summe, name FROM firmen
INNER JOIN rechnungen ON ( rechnungen.id_liefer =3D firmen.id)
GROUP BY firmen.id
Danke für die Hilfe
Alles Liebe Martin °^°
Re: verschachtelte Abfrage
am 18.02.2007 23:48:20 von Florian Laws
On 2007-02-18, mmollay wrote:
> Liebe mysql-meister,
>
> Habe 2 Tabellen: firma, rechnungen
>
> Wenn sich Einträge in "firma" befinden, die mit "rechnungen" in
> Verbindung stehen werden diese ausgegeben.
> Wenn sich allerdings Einträge in der Tabelle "firma" befinden, die mit
> noch keiner der Einträge in "rechnungen" in Verbindung stehen, werden
> keine Einträge ausgebeben, verständlicherweise :)
> Wie kann ich bewerkstelligen, dass auch solche Einträge auch mit
> aufgelistet werden.
>
> Bsp:
> SELECT SUM( betrag ) AS summe, name FROM firmen
> INNER JOIN rechnungen ON ( rechnungen.id_liefer = firmen.id)
> GROUP BY firmen.id
Mit einem LEFT JOIN statt des INNER JOIN.
Grüße,
Florian
Re: verschachtelte Abfrage
am 19.02.2007 00:39:35 von mmollay
On 18 Feb., 23:48, Florian Laws wrote:
> On 2007-02-18, mmollay wrote:
>
>
>
> > Liebe mysql-meister,
>
> > Habe 2 Tabellen: firma, rechnungen
>
> > Wenn sich Einträge in "firma" befinden, die mit "rechnungen" in
> > Verbindung stehen werden diese ausgegeben.
> > Wenn sich allerdings Einträge in der Tabelle "firma" befinden, die mit
> > noch keiner der Einträge in "rechnungen" in Verbindung stehen, werden
> > keine Einträge ausgebeben, verständlicherweise :)
> > Wie kann ich bewerkstelligen, dass auch solche Einträge auch mit
> > aufgelistet werden.
>
> > Bsp:
> > SELECT SUM( betrag ) AS summe, name FROM firmen
> > INNER JOIN rechnungen ON ( rechnungen.id_liefer =3D firmen.id)
> > GROUP BY firmen.id
>
> Mit einem LEFT JOIN statt des INNER JOIN.
>
> Grüße,
>
> Florian
danke das geht soweit, allerdings wenn ich jetzt ein AND id_user=3D5
anhängen will um gewisse Einschränkungen zu bewirken (bsp.: nur firmen
mit der id_user 5), wird trotzdem alles uneingeschränkt angezeigt.
SELECT SUM( betrag ) AS summe, name FROM firmen
LEFT JOIN rechnungen ON rechnungen.id_liefer =3D firmen.id
AND firmen.id_user=3D5
GROUP BY firmen.id
Re: verschachtelte Abfrage
am 19.02.2007 06:18:29 von Thomas Rachel
mmollay wrote:
^^^^^^^ ...!
> danke das geht soweit, allerdings wenn ich jetzt ein AND id_user=5
> anhängen will um gewisse Einschränkungen zu bewirken (bsp.: nur firmen
> mit der id_user 5), wird trotzdem alles uneingeschränkt angezeigt.
>
> SELECT SUM( betrag ) AS summe, name FROM firmen
> LEFT JOIN rechnungen ON rechnungen.id_liefer = firmen.id
> AND firmen.id_user=5
> GROUP BY firmen.id
Einschränkungen macht man mit WHERE, nicht mit ON. Ins ON gehören nur die
Verknüpfungebedingungen. Alles andere gehört ins WHERE. AFAIR steht das
auch irnkwo im Handbuch an der entsprechenden Stelle.
Thomas
--
Jabber-ID: glglgl@amessage.info (keine Email-Adresse!)
Warum Jabber, was ist das und wie geht das?
http://de.wikibooks.org/wiki/Jabber-Kompendium:_Schnelleinst ieg