hallo
wie geht man denn mit einer having-clause in typoscript um?
oder wie bekommt man sonst ein count(*) =xxx unter ?
hallo
wie geht man denn mit einer having-clause in typoscript um?
oder wie bekommt man sonst ein count(*) =xxx unter ?
das ist mein code ... vielleicht gits ja andere probleme, die ich jetzt so nicht sehe.
30=COA
30{
10 = CONTENT
10{
table = tt_news
select{
pidInList =46
where.data = GP:tx_ttnews|cat
where.wrap = uid_foreign in (|)
join = tt_news_cat_mm ON (tt_news_cat_mm.uid_local = tt_news.uid)
andWhere.data = GP:cnt
andWhere.wrap = having count(*)=|
groupBy = title
orderBy = title
}
renderObj = COA
renderObj{
10 = TEXT
10{
field = title
dataWrap =
insertData = 1
wrap = |<br>
}
}
}
}
Hallo,
ich kann nicht ganz nachvollziehen, was Du mit dem SELECT bezwecken willst. Vor welchem Hintergrund hast Du den zusätzlichen GP-Parameter cnt eingeführt und warum willst Du gruppieren? Wenn Du erklären würdest, was Du mit dem ganzen ausgeben möchtest, könnte ich vielleicht einen Ansatz finden.
Kleiner Hinweis am Rande: bei GROUP BY macht es nur Sinn - wenn Du hinter SELECT nur Spalten hast, die entweder in der Gruppierung stehen oder Aggregatfunktionen sind.
VG,
LuP
LuP schriebHallo,
ich kann nicht ganz nachvollziehen, was Du mit dem SELECT bezwecken willst. Vor welchem Hintergrund hast Du den zusätzlichen GP-Parameter cnt eingeführt und warum willst Du gruppieren? Wenn Du erklären würdest, was Du mit dem ganzen ausgeben möchtest, könnte ich vielleicht einen Ansatz finden.
Kleiner Hinweis am Rande: bei GROUP BY macht es nur Sinn - wenn Du hinter SELECT nur Spalten hast, die entweder in der Gruppierung stehen oder Aggregatfunktionen sind.
VG,
LuP
hallo
danke erstmal, dass du zeit investierst...
um ein wenig auszuholen, ich hab für tt_news einen filter selbstgebaut mit javascript und typoscript .... jetzt funktioniert der categoryMode 2 (UND verknüpfung) nicht bei tt_news, dieser bug liegt schon seit version 3.0.1 vor und wird nicht gefixed :-( .... somit habe ich mir ein sql selbstgeschrieben mit direktem zugriff auf die db ohne das plugin bei der ansicht mit der UND verknüpfung ..
kurzes beispiel ....
meine news heissen "übungen"
es gibt 4 hauptkategorien mit jeder menge childs
ich habe jetzt pro hauptkategorie einen filter ...
die übung xyz hat sub1 sub5 und sub6 zugeordnet
wenn ich jetzt sub1 sub5 und sub 6 auswähle .. soll er nur übungen anzeigen, die wirklich diese 3 hauptkategorien haben(hier liegt das prob bei categoryMode 2, diese macht ODER verknüpfungen, zeigt also alle übungen an, die zumindest eine der subs hat) ...
zu meinem sql statement
SELECT * FROM `tt_news` join tt_news_cat_mm on uid = uid_local where uid_foreign in (array1) group by title having count(*) =cnt
da ich in javascript bereits die ausgewählten kategorien in den url übergebe nehme ich diese her lege sie in
uid_foreign in (array1)
(ich weiß, dass auch hier ODER verknüpft wird) und lasse mir die übungen ausgeben, welche zu den kategorien passen .... hier kommt natürlich jede übung mit jeder zugeordneten kategorie als record ...deswegen das group by und zu guter letzt die aggregratsfuktion having bekommt von javascript ebenfalls über den url die anzahl der ausgewählten kategorien übergeben.... somit sage ich dem sql statement, dass er nur solche titel anzeigen soll, die alle kategorien zugeordnet haben..
grundsätzlich kann ich sql und weiß nur nicht wie das in typoscript realisieren soll ... natürlich denk ich auch oft sehr kompliziert, deswegen kann es sein, dass es eine einfachere lösung gibt
wenns zu kompliziert war, frag einfach nach bitte ;-)
OK, vielen Dank für die ausführlichen Erklärungen.
Die HAVING-Klausel wird leider nicht direkt unterstützt, aber Du könntest versuchen, sie mittels stdWrap in groupBy zu injizieren:
groupBy.data = GP:cnt
groupBy.wrap = title HAVING count(*) = |
VG,
LuP
Liebe/Lieber LuP !
DANKE vielmals ... es funktioniert ;-)
lg
XL