Mailinglisten-Archive |
On Wed, Jun 26, 2002 at 04:14:25AM +0200, Frank Liebelt wrote: > Hallo, > > Ich habe zwei Tabellen > Tab1: Name Nachname > Tab2: Name Strasse > > Wenn ich folgende Abfrage stellen bekomme ich alle Ergebnisse doppelt. > Das Ergebnis ist zwar OK nur möchte ich es nicht doppelt haben. > Woran könnte das liegen ? > > SELECT a.name,a.nachname,b.strasse FROM kunden1 as a,kunden2 as b WHERE > a.name = ('Frank') > > Frank > Frank > Liebelt > Liebelt > Buckelpiste > Buckelpiste klar dass das passiert. es wird ja schliesslich die matrix kunden1 x kunden2 durchiteriert ... im klartext: bei deiner abfrage ensteht erstmal eine tabelle, bei der jedes tupel aus kunden1 mit jedem tupel aus kunden2 verknueft wird. sei A eine tabelle mit A[0]..A[n] und B eine tabelle mit B[0]..B[m], dann kommt da raus A[0]:B[0] A[1]:B[0] A[2]:B[0] ... A[n]:B[O] A[0]:B[1] A[1]:B[1] ... A[n]:B[1] ... A[n]:B[m] durch die where-clausel bleiben nur noch die drin, bei denen a.name gleich 'Frank' ist. hmm. vielleicht moechtest du noch irgentwie a mit b verknuepfen, z.b. ueber name ? ~-n -- Enrico Weigelt == metux ITS Webhosting ab 5 EUR/Monat. Server-Housing ab 50 EUR/Monat. www: http://www.metux.de/ phone: +49 36207 519931 email: contact_(at)_metux.de cellphone: +49 174 7066481
php::bar PHP Wiki - Listenarchive