PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL Abfrage



sansib
21-03-2005, 19:47
Ich habe eine zweispaltige Tabelle für eine Photoverwaltung.
1.Spalte biid (Bild_ID). Nummer des Photos.
2.Spalte kainid (Kategorie Inhalts ID). Inhalt z.B. Landschaft, Person...

zu einer biid kann es mehrere kainid's geben.
Beispiel:
+------+-----+
| biid | kainid |
+-----+------+
| 23 | 19 |
| 27 | 1 |
| 27 | 8 |
| 28 | 1 |
| 28 | 8 |
| 33 | 2 |
| 33 | 21 |
| 33 | 22 |
| 34 | 3 |
| 34 | 21 |
| 34 | 22 |
| 35 | 1 |
| 35 | 2 |
| 35 | 8 |
+------+----+
Ich such nun eine sql-query, mit der ich z.B. das oder die Bilder finde, die die kainid von 21,22 und 3 haben. Habe schon alles mögliche versucht aber bis jetzt noch keien Lösung dafür gefunden.
Grüsse sansib :confused:

Reaper
21-03-2005, 20:24
SELECT * FROM db WHERE kainid = '21' OR kainid = '22' OR kainid = '3'

sansib
21-03-2005, 20:56
ich muß noch dazu sagen, das das Ergebnis im obigen Beispiel 34 sein soll.
Also die biid die alle 3 kainid's enthält.

elrond
22-03-2005, 08:33
SELECT bid FROM db WHERE kainid in ('21', '22', '3') group by bid having count(*)=3

sansib
24-03-2005, 06:55
genau, so eine query habe ich gesucht. Es funkt nun.