[TYPO3-german] Vielleicht sieht ja jemand meinen Logikfehler im SQL Aufruf ???
bernd wilke
t3ng at bernd-wilke.net
Fri Feb 1 08:41:53 CET 2013
Am 01.02.2013 00:31, schrieb Ralf-Rene Schröder:
> Hallo...
> irgendwie sehe ich den Wald vor lauter Bäumen nicht...
> ich muß da irgendeinen blöden logischen Fehler machen.
>
> ich habe datensätze (item) die per MM Tabelle mehreren Kategorien (cat)
> zugeordnet sind
> (die wiederum sind untereinander duch eine Kommaseparierte Liste
> verbunden - vereinfacht hier nur als register, denn die stimmen)...
>
> nun will ich hier die Datensätze zählen die sowohl cat als auch
> parentcat zugeordnet sind...
> jedes der beiden Elemente (100/110) zählt für sich richtig
> bei parentcat alleine gibt es 4 - bei cat alleine 12 Ergebnisse
> (schon richtig, weil diese cat auch in anderen parents eingebunden sind)
> beides zusammen sollten bei meinen testfall 3 ergeben (sind aber hier 0)
>
> item-count.cObject = TEXT
> item-count.cObject.numRows.table = tx_ext_item
> item-count.cObject.numRows.select {
> join = tx_ext_item_cat_mm ON ( tx_ext_item_cat_mm.uid_local =
> tx_ext_item.uid )
> pidInList = 688
> andWhere.cObject = COA
> andWhere.cObject {
> 100 = TEXT
> 100.value = tx_ext_item_cat_mm.uid_foreign = {register:cat}
> 100.insertData = 1
> 100.noTrimWrap = |||
> 110 = TEXT
> 110.value = tx_ext_item_cat_mm.uid_foreign = {register:parentcat}
> 110.insertData = 1
> 110.noTrimWrap = | AND ||
> }
> }
>
> jemand eine Idee wo mein Denkfehler ist ???
>
bau dir doch mal ein SQL-Query als Beispiel auf und schmeiss das ins
phpmyadmin.
bzw. lass dir mal hier dein Query ausgeben. irgendwo sollte da drin dann
so etwas wie
tx_ext_item_cat_mm.uid_foreign = 1 AND // cat
tx_ext_item_cat_mm.uid_foreign = 2 // parentcat
stehen. Das kann natürlich nie erfüllt werden, da ein Feld nicht
gleichzeitig zwei verschiedene Werte annehmen kann.
eigentlich musst du ein mit deiner mm-tabell ein join auf sich selber
machen. damit so etwas geht musst du mit alias arbeiten
SELECT uid,count(*)
FROM tx_ext_item_cat_mm
JOIN tx_ext_item_cat_mm AS mm2 ON tx_ext_item_cat_mm.uid = mm2.uid
WHERE tx_ext_item_cat_mm.uid_foreign = 'cat'
AND mm2.uid_foreign = 'parentcat'
ob du dann noch die Ursprungstabelle joinst um direkt weitere Felder
(titel, ...) zu bekommen steht dir frei.
bernd
--
http://www.pi-phi.de/cheatsheet.html
More information about the TYPO3-german
mailing list