phpbar.de logo

Mailinglisten-Archive

Abfrage zum Auffinden von Zwillingen, Drillingen etc.

Abfrage zum Auffinden von Zwillingen, Drillingen etc.

Ulrich Kretschmer u.kretschmer.mysql.4t2 at bergruf.de
Mit Mar 29 00:14:57 CEST 2006


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