Mailinglisten-Archive |
Am Montag, 27. März 2006 23:26 schrieb Andreas Müller: > Hallo Ulrich, > wie wäre es denn damit > > SELECT c.familyID, p.personID, p.birthdatetr, COUNT(p2.familyID) > FROM tng_children AS c > INNER JOIN tng_people AS p ON p.personID=c.personID > INNER JOIN tng_children AS c2 ON c2.familyID=c.familyID > INNER JOIN tng_people AS p2 ON p2.personID=c2.personID > WHERE p2.birthdatetr=p.birthdatetr > GROUP BY c.familyID,p.personID,p.birthdatetr > HAVING COUNT(p2.familyID)>=2; > > Ist ungetestet müsste aber gehen. Funktioniert prächtig (familyID kommt aus c, nicht aus p). > Das Prinzip: Self-Join mit GROUP BY über > die erste Tabelle und zählen der Sätze in der zweiten. Uff! Da muß man erstmal drauf kommen. Vielen Dank! Wenn man die WHERE-Klausel erweitert auf WHERE p2.birthdatetr=p.birthdatetr OR p2.birthdatetr=DATE_ADD(p.birthdatetr, INTERVAL 1 DAY) OR p2.birthdatetr=DATE_SUB(p.birthdatetr, INTERVAL 1 DAY) kann auch noch ein Tagessprung im Geburtsdatum sein - siehe die andere E-Mail. (Kommt in meinem Datenbestand allerdings nicht vor.) Ulrich -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive