Mailinglisten-Archive |
This is a multi-part message in MIME format. ------=_NextPart_000_0011_01C17359.982C2CC0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, > zeig uns doch mal den Aufbau deiner Tabelle und ein paar Testdaten, > dann muessen wir nicht ins Blaue hinein raten. ok hier : ------=_NextPart_000_0011_01C17359.982C2CC0 Content-Type: text/plain; name="selfjoin.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="selfjoin.txt" Tabelle (mitglieder) mit mannlichen Migliedern eines Vereins. Zumeist Vater und S=F6hne: _______________________________ |name |vorn |strasse |status| |______|_____|_________|______| |Peters|Klaus|Forstweg |Vater | |------+-----+---------+------| |Peters|Sven |Forstweg |Sohn | |------+-----+---------+------| |Hansen|Peter|Baumallee|Vater | |------+-----+---------+------| |Hansen|Udo |Baumallee|Sohn | |------+-----+---------+------| |Hansen|Sepp |Baumallee|Sohn | |------+-----+---------+------| |Jahnke|Kurt |Dorfallee|Vater | |------+-----+---------+------| |Volmer|Hans |Krausestr|Sohn | |------+-----+---------+------| |Kuehne|Joern|Krausestr|Vater | |------+-----+---------+------| Es soll jedem Vater seine Soehne zugeordnet werden. V=E4ter ohne S=F6hne werden aufgelistet. S=F6hne ohne Vater werden NICHT aufgelistet. Ergebnis soll in etwa so aussehen: ___________________________________ |name |vorn |strasse |soehne | |______|_____|_________|__________| |Peters|Klaus|Forstweg |Sven | |------+-----+---------+----------| |Hansen|Peter|Baumallee|Udo, Sepp | |------+-----+---------+----------| |Jahnke|Kurt |Dorfallee| | |------+-----+---------+----------| |Kuehne|Joern|Krausestr| | |------+-----+---------+----------| Folgendes Statement dauert ewig (ca. 2400 Datensa=E4tze) und produziert = nat=FCrlich f=FCr jede Beziehung eine neue Zeile: SELECT a.name as name, a.vorname as vorn, a.strasse as strasse, b.vorname as sohn FROM mitglieder a LEFT JOIN mitglieder b ON (a.name=3Db.name) AND (a.strasse=3Db.strasse) AND (b.status like 'Sohn') WHERE (a.status =3D 'Vater')=20 ___________________________________ |name |vorn |strasse |sohn | |______|_____|_________|__________| |Peters|Klaus|Forstweg |Sven | |------+-----+---------+----------| |Hansen|Peter|Baumallee|Udo | |------+-----+---------+----------| |Hansen|Peter|Baumallee|Sepp | |------+-----+---------+----------| |Jahnke|Kurt |Dorfallee|NULL | |------+-----+---------+----------| |Kuehne|Joern|Krausestr|NULL | |------+-----+---------+----------| Zum testen: CREATE TABLE mitglieder ( name char(20) NOT NULL default '', vorname char(20) NOT NULL default '', strasse char(20) NOT NULL default '', status char(20) NOT NULL default '' ) TYPE=3DMyISAM; INSERT INTO mitglieder VALUES ('Peters', 'Klaus', 'Forstweg', 'Vater'); INSERT INTO mitglieder VALUES ('Peters', 'Sven', 'Forstweg', 'Sohn'); INSERT INTO mitglieder VALUES ('Hansen', 'Peter', 'Baumallee', 'Vater'); INSERT INTO mitglieder VALUES ('Hansen', 'Udo', 'Baumallee', 'Sohn'); INSERT INTO mitglieder VALUES ('Hansen', 'Sepp', 'Baumallee', 'Sohn'); INSERT INTO mitglieder VALUES ('Jahnke', 'Kurt', 'Dorfallee', 'Vater'); INSERT INTO mitglieder VALUES ('Volmer', 'Hans', 'Krausestr', 'Sohn'); INSERT INTO mitglieder VALUES ('Kuehne', 'Joern', 'Krausestr', 'Vater'); ------=_NextPart_000_0011_01C17359.982C2CC0-- --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive