MySQL
Manfred
- datenbank
0 Horst
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
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