Komma Werte in select where Abfrage?
| Autor | Nachricht |
|---|---|
|
Verfasst am: 02. 07. 2010 [00:43]
|
|
|
Robman
Themenersteller
Dabei seit: 29.03.2010
Beiträge: 13
|
Hallo Forum! ich habe zu meinem Problem schon ein Thema erstellt. Aber das sieht evtl. zu kompliziert aus und bezieht sich auf tt_products... http://www.typo3.net/forum/list/list_post//99696/ Hier noch einmal eine abgespeckte Version. Ich habe in einem Datenbankfeld zwei id's gespeichert, die durch Komma getrennt sind. Das sieht so aus: 1,2 Diese Zwei will ich "lesbar" machen, um diese für die nächste where Abfrage zu nutzen. TYPOSCRIPT temp.split = CONTENT temp.split { table = daten select { pidInList = 10 } renderObj = COA renderObj { stdWrap.outerWrap = |, 10 = TEXT 10.field = kommawerte 10.wrap = | } } # Ausgabe ist dann: 1,2, (bei noch mehr id's: 1,2,3,4,5 usw.) # Und nun die zweite Abfrage temp.machdoch = CONTENT temp.machdoch { table = id_vergleich select { pidInList = 20 # Um diese Bedingung geht es!!! where = tt_products_distributor.uid',' = temp.split # Der where-Klausel soll: # 1, = 1, oder 2, = 2, abgleichen # nur wie ? } renderObj = COA renderObj { # usw... } Hat jemand eine Ahnung wie ich das anstellen kann? Beste Grüße, Robman # Nachtrag Ich hab eben etwas ähnliches gefunden: "Verschachtelte SQL Abfragen" http://www.typo3.net/forum/list/list_post//96144/ Aber dort kommen keine Komma separierten Werte drin vor... [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.07.2010 um 00:56.] |
|
Verfasst am: 04. 07. 2010 [07:37]
|
|
|
Robman
Themenersteller
Dabei seit: 29.03.2010
Beiträge: 13
|
Ich bin schon etwas weiter... Aber immer noch keine Lösung. Ich glaube, es liegt an der Syntax der where-Bedingung. Die Werte aus dem "temp.split." werden wohl nicht referenziert. TYPOSCRIPT temp.achmann = CONTENT temp.achmann { table = tt_products select { pidInList = 1,2,3 join = tt_products_distributor ON (tt_products.distributor_uid = tt_products_distributor.uid) # where.dataWrap = (temp.split.eins = temp.split.zwei) where.dataWrap = (temp.split.eins = '###2###') # andwhere.noTrimWrap = (temp.split.eins = temp.mach) # andwhere.noTrimWrap = (temp.split.eins = '###2####') andWhere { data = GPvar:tt_products|product wrap = tt_products.uid = | } } # usw... Die Daten aus dem table join sind aus beiden Tabellen abrufbar. Nur die where Klausel klappt nicht. Alle Versuche eine funktionierende where oder andWhere Bedingung mit den temp.split. zu setzen sind gescheitert temp.split.eins - erstellt ein array aus: 1 = ###1#### oder temp.split.eins - erstellt ein array aus: 1,2 = ###1######2### oder temp.split.eins - erstellt ein array aus: 1,2,3 = ###1######2######3### temp.split.zwei - erstellt ein array aus allem was da ist 1,2,3,4,5 usw. = ###1######2######3######4######5### usw. Diese lassen sich aber nicht vergleichen. Warum nur??? Ich dachte aus: where temp.split.eins = ###1######2### gleich temp.split.zwei = ###1######2######3######4######5### resultiert ###1### = ###1### ###2### = ###2### oder ###1######2### = ###1######2### Pustekuchen! Liegt es "NUR" an der Syntax? Oder mach ich einen kompletten Denkfehler??? Gruß, Robman |
|
Verfasst am: 08. 07. 2010 [12:46]
|
|
|
Robman
Themenersteller
Dabei seit: 29.03.2010
Beiträge: 13
|
Ich erstell mal die Lösungsantwort zu meinem Ego-Chat hier Ich hab all das where, split zeugs mal rausgeschmissen und die Sache einfach über eine Zuordnungstabelle (_mm) gemacht. Klappt wunderbar, und die Kopfschmerzen sind auch weg. Falls aber nochmal jemand vorbeigucken sollte der sich mit 1,2,3 split arrays und das vergleichen der werte in einem join oder in einer where abfrage auskennt würde ich mich freuen. Gruß, Robman |



