Probleme mit Abfrage

Probleme mit Abfrage

am 18.05.2006 13:32:55 von Karsten Jacob

Hi NG.

Folgendes Problem:

Tabelle 'lkw':
Felder: zugnummer, kundennummer

Tabelle 'tankdaten':
Felder: getankte_liter, datum, zugnummer

Übergeben wird mit PHP eine Kundennummer. Ich möchte gerne aus der Tabelle
'tankdaten' alles Daten desjenigen LKW haben, dessen Kundennummer übergeben
wird.

Ist doch ganz einfach. Aber ich bin zu dämlich.

Kann mir einer bitte helfen?

Danke,

Karsten

Re: Probleme mit Abfrage

am 18.05.2006 13:56:54 von Christian Kirsch

Karsten Jacob schrieb:
> Hi NG.
>
> Folgendes Problem:
>
> Tabelle 'lkw':
> Felder: zugnummer, kundennummer
>
> Tabelle 'tankdaten':
> Felder: getankte_liter, datum, zugnummer
>
> Übergeben wird mit PHP eine Kundennummer. Ich möchte gerne aus der Tabelle
> 'tankdaten' alles Daten desjenigen LKW haben, dessen Kundennummer übergeben
> wird.
>
> Ist doch ganz einfach. Aber ich bin zu dämlich.

Wie sieht denn die Abfrage aus, die nicht funktioniert?

Bitte nur das SQL, ohne PHP.

Re: Probleme mit Abfrage

am 18.05.2006 13:58:12 von Thomas Rachel

Karsten Jacob wrote:

> Tabelle 'lkw':
> Felder: zugnummer, kundennummer
>
> Tabelle 'tankdaten':
> Felder: getankte_liter, datum, zugnummer
>
> Übergeben wird mit PHP eine Kundennummer. Ich möchte gerne aus der
> Tabelle 'tankdaten' alles Daten desjenigen LKW haben, dessen Kundennummer
> übergeben wird.

Deine Umlaute sind kaputt. Siehe www.oe-faq.de für Abhilfe.

> Ist doch ganz einfach. Aber ich bin zu dämlich.
>
> Kann mir einer bitte helfen?

SELECT FROM lkw JOIN tankdaten USING (zugnummer) WHERE
kundennummer=

HTH


Thomas

Re: Probleme mit Abfrage

am 18.05.2006 14:24:26 von Sibylle Koczian

Karsten Jacob schrieb:
> Hi NG.
>=20
> Folgendes Problem:
>=20
> Tabelle 'lkw':
> Felder: zugnummer, kundennummer
>=20
> Tabelle 'tankdaten':
> Felder: getankte_liter, datum, zugnummer
>=20
> Übergeben wird mit PHP eine Kundennummer. Ich möchte gerne aus der =
Tabelle=20
> 'tankdaten' alles Daten desjenigen LKW haben, dessen Kundennummer übe=
rgeben=20
> wird.
>=20
> Ist doch ganz einfach. Aber ich bin zu dämlich.
>=20

Es sieht einfach aus. JOIN oder eine Unterabfrage (MySQL hinreichend
neu?) sollte es tun:

SELECT l.zugnummer, t.getankte_liter, t.datum
FROM lkw l INNER JOIN tankdaten t ON l.zugnummer =3D t.zugnummer
WHERE l.kundennummer =3D

bzw.

SELECT zugnummer, getankte_liter, datum FROM tankdaten
WHERE zugnummer IN (SELECT zugnummer FROM lkw WHERE kundennummer =3D
)

Aber schau Dir JOIN und Unterabfragen im Handbuch an; ist wahrscheinlich
lokal auf Deinem Rechner installiert, ersatzweise

http://dev.mysql.com/doc/refman/5.0/en/index.html

Man braucht JOIN alle fünf Minuten und Unterabfragen lassen sich auch
oft einsetzen.

--=20
Dr. Sibylle Koczian
Universitaetsbibliothek, Abt. Naturwiss.
D-86135 Augsburg
e-mail : Sibylle.Koczian@Bibliothek.Uni-Augsburg.DE

Re: Probleme mit Abfrage

am 18.05.2006 14:47:16 von thborsdorf

Hi!

Sibylle Koczian schrieb am 18.05.2006 14:24:
> SELECT l.zugnummer, t.getankte_liter, t.datum
> FROM lkw l INNER JOIN tankdaten t ON l.zugnummer = t.zugnummer
> WHERE l.kundennummer =

....und wenn du die Zugnummer wissen willst auch wenn es KEINE Tankdaten
gibt:

SELECT l.zugnummer, t.getankte_liter, t.datum
FROM lkw l LEFT OUTER JOIN tankdaten t ON l.zugnummer = t.zugnummer
WHERE l.kundennummer =

MfG Thomas.

Re: Probleme mit Abfrage

am 18.05.2006 15:21:35 von Karsten Jacob

> Sibylle Koczian schrieb am 18.05.2006 14:24:
>> SELECT l.zugnummer, t.getankte_liter, t.datum
>> FROM lkw l INNER JOIN tankdaten t ON l.zugnummer = t.zugnummer
>> WHERE l.kundennummer =
>

Super, die Abfrage von Sibylle war genau das, was ich brauchte.

Vielen Dank,

Karsten