Manfred: MySQL

Hallo,
ich habe 2 MySQL-Tabellen mit folgenden Einträgen:

Tabelle 1:
ID      Name
1       a
2       b
3       c
4       d

Tabelle 2:
ID      ID_Tabelle1
1       1
2       1
3       1
4       1
5       2
6       2
7       2
8       3

Ich möchte in einem einzigen mysql_query in PHP alle Zeilen aus Tabelle 1 holen, die mindestens 3 Zeilen in Tabelle 2 haben, bei denen die ID_Tabelle1(Tabelle2) gleich der ID(Tabelle1) ist.

Es soll dann also aus Tabelle1 die Zeilen mit ID=1 und ID=2 selektiert werden, weil ID 1 und 2 im zweiten Feld in der Tabelle2 mindestens drei mal vorkommen.

mysql_query('select t1.id, t1.name from tabelle1 as t1, tabelle2 as t2 where t2.ID_Tabelle1=t1.id && count(t2.ID_Tabelle1)>3');

Der query stimmt natürlich hinten und vorne nicht, aber ich hoffe es ist ungefähr klar geworden. Ich brauche einen query, der nur aus einer Zeile besteht, d.h. ich kann dafür nicht mehrere selects hintereinander ausführen, um zum Ergebnis zu kommen.

Viele Grüße

  1. Hi Manfred,

    schau mal hier nach:
    http://forum.de.selfhtml.org/archiv/2003/1/34476/#m187740
    Habe den SELECT von Alexander Foken ein wenig abgeändert:

    SELECT
    t1.id, t1.name, count(t2.id1) AS n
    FROM t1, t2
    WHERE
    t1.id = t2.id1
    GROUP BY
    t1.id, t1.name, t2.id1
    HAVING
    n >2;

    Das müßte klappen

    Viele Grüße
    Horst