Maik W. aus E.: Stichwort/Tag-Verwaltung mit mySQL5

Beitrag lesen

Tach auch ChrisB,

"Gib mir aus der Tabelle 'stich_id_artikel_id' die 'artikel_id's, zu denen es einen Eintrag mit der stichwort_id '1639' und mit der stichwort_id '5325' (usw) gibt."

Dann wird's schwieriger...

Nein, wird's nicht - dann schränkst du die Auswahl der Datensätze mit einer entsprechenden WHERE-Klausel ein, bevor du zählst.

Okay, mit einem Stichwort funktionierts:

  
SELECT dok_id  
FROM `stichwort_dok_rel_sys`  
WHERE stichwort_id = '1639'  
GROUP BY dok_id  
HAVING COUNT( * ) >0  

Nur, wenn man zwei Werte abfragen will, kommt kein Ergebnis:

  
SELECT dok_id  
FROM `stichwort_dok_rel_sys`  
WHERE stichwort_id = '1639'  
AND stichwort_id = '5325'  
GROUP BY dok_id  
HAVING COUNT( * ) >0  

Lediglich die per HAVING abgefragte Anzahl muss dann noch der Anzahl der Vergleichskriterien angepasst werden. Aber das ist ja auch kein großes Ding, wenn man die Query dynamisch per Script generiert.

Ah, ich glaube daran liegt's, denn

  
SELECT dok_id  
FROM `stichwort_dok_rel_sys`  
WHERE stichwort_id = '1639'  
OR stichwort_id = '5325'  
GROUP BY dok_id  
HAVING COUNT( * ) >1  
LIMIT 0 , 30  

macht es richtig. Das ist es doch, oder?

Maik

--
Margin-Regler am Control-Data-Tischrechner im RRZE Erlangen
Mehr margin! Sag ich ja immer...