LIMIT

LIMIT

am 21.02.2006 03:42:36 von Oliver Benning

Hallo,

ich selektiere aus TabelleA, die per LEFT JOIN mit TabelleB verbunden
ist. Am Bildschirm werden nur die Zeilen aus TabelleA ausgegeben,
programmintern benötige ich aber auch die Informationen aus TabelleB.

Ich möchte nun ein klassisches LIMIT x,y realisieren, um z.B. nur 10
Datensätze aus TabelleA pro Seite am Bildschirm anzuzeigen.

Das Problem ist, daß es für einen Datensatz in TabelleA, 0..n Datensätze
in TabelleB gibt und ich so nicht rausfinden kann, ab welcher Zeile
(LIMIT x) der nächste Datensatz aus TabelleA beginnt.

Gibt es dafür eine Lösung, ohne auf den JOIN zu verzichten? GROUP BY
kommt auch nicht in Frage, weil ich alle Datensätze aus TabelleB
benötige.

Gruß,
Oliver

Re: LIMIT

am 21.02.2006 12:33:16 von Fabian Schladitz

Oliver Benning schrieb:
> Hallo,
>=20
> ich selektiere aus TabelleA, die per LEFT JOIN mit TabelleB verbunden=20
> ist. Am Bildschirm werden nur die Zeilen aus TabelleA ausgegeben,=20
> programmintern benötige ich aber auch die Informationen aus TabelleB.=

>=20
> Ich möchte nun ein klassisches LIMIT x,y realisieren, um z.B. nur 10 =

> Datensätze aus TabelleA pro Seite am Bildschirm anzuzeigen.
>=20
> Das Problem ist, daß es für einen Datensatz in TabelleA, 0..n Daten=
sätze=20
> in TabelleB gibt und ich so nicht rausfinden kann, ab welcher Zeile=20
> (LIMIT x) der nächste Datensatz aus TabelleA beginnt.
>=20
> Gibt es dafür eine Lösung, ohne auf den JOIN zu verzichten? GROUP B=
Y=20
> kommt auch nicht in Frage, weil ich alle Datensätze aus TabelleB benö=
tige.

Du könntest eventuell einen Subselect nutzen, falls dein MySQL neu genu=
g=20
ist. Dann nutzt du den LIMIT im Subselect, falls soetwas unterstütz wir=
d.

--=20
HTH,
Fabian

Re: LIMIT

am 21.02.2006 15:14:28 von Oliver Benning

Fabian Schladitz wrote:
> Oliver Benning schrieb:
>> ich selektiere aus TabelleA, die per LEFT JOIN mit TabelleB verbunden
>> ist. Am Bildschirm werden nur die Zeilen aus TabelleA ausgegeben,
>> programmintern benötige ich aber auch die Informationen aus TabelleB.
>>
>> Ich möchte nun ein klassisches LIMIT x,y realisieren, um z.B. nur 10
>> Datensätze aus TabelleA pro Seite am Bildschirm anzuzeigen.
>>
>> Das Problem ist, daß es für einen Datensatz in TabelleA, 0..n
>> Datensätze in TabelleB gibt und ich so nicht rausfinden kann, ab
>> welcher Zeile (LIMIT x) der nächste Datensatz aus TabelleA beginnt.
>>
>> Gibt es dafür eine Lösung, ohne auf den JOIN zu verzichten? GROUP BY
>> kommt auch nicht in Frage, weil ich alle Datensätze aus TabelleB
>> benötige.
>
> Du könntest eventuell einen Subselect nutzen, falls dein MySQL neu
> genug ist. Dann nutzt du den LIMIT im Subselect, falls soetwas
> unterstütz wird.

Ich nutze MySQL 4.1, wie meinst Du das denn genau mit dem "LIMIT im
Subselect"?